我不知道为什么,但是在课堂上创建窗口时出现错误。
错误是:
game.cpp(11): error C2064: term does not evaluate to a function taking 2 arguments
我不理解这个的原因,责任在于类的构造函数:
window.cpp
Application::Application(std::map<string,string>& s, std::map<string, string>& t){
settings = s;
theme = t;
window(sf::VideoMode(800, 600), "Test"); //error is here
}
在我的标题中window.h
被私下设置为:
private:
std::map<string, string> settings;
std::map<string, string> theme;
sf::RenderWindow window;
我的main.cpp
设置如下:
Application game(setting,style);
这可能是什么原因?
答案 0 :(得分:2)
使用成员初始值设定项初始化您的成员:
Application::Application(std::map<string,string>& s, std::map<string, string>& t)
:settings(s),
theme(t),
window(sf::VideoMode(800, 600), "Test")
{
}
它被称为成员初始化列表。成员初始化列表包含 逗号分隔的初始化列表,以冒号开头。它是在收盘后放置的 参数列表的括号和函数体的左括号之前。