I have a class which sets up some variables to another class, but i cannot seem to get it work as i get an error.
So i have this:
MainMenu::MainMenu(std::map<std::string,std::string>& theme){
CreateSprite Background(theme["Background"]);
}
void create(sf::RenderWindow& output){
output.draw( Background.callback() );
}
The header for it:
class MainMenu
{
private:
CreateSprite Background;
public:
MainMenu(std::map<std::string, std::string>&);
void create(sf::RenderWindow&);
};
The problem is I get:
error C2512: 'CreateSprite' : no appropriate default constructor available
My class for CreateSprite is set like this:
CreateSprite::CreateSprite(std::string& imagefile) {
if(!image.loadFromFile(imagefile)){
exit(2);
}
sprite = sf::Sprite(image);
}
sf::Sprite CreateSprite::callback(){
return sprite;
}
The related header for this class is:
class CreateSprite
{
public:
CreateSprite(std::string&);
sf::Sprite callback();
private:
sf::Texture image;
sf::Sprite sprite;
};
What have i got incorrect ?
I am guessing your
MainMenuhas a memberBackgrounddeclared already, you should init it from member initializer:change from
to