0

我不知道为什么,但是在类中创建窗口时出现错误。

错误是:

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);

这可能是什么原因?

4

1 回答 1

2

使用成员初始化器来初始化您的成员:

Application::Application(std::map<string,string>& s, std::map<string, string>& t)
:settings(s),
 theme(t),
 window(sf::VideoMode(800, 600), "Test") 
{
}

它被称为成员初始值设定项列表。成员初始值设定项列表由逗号分隔的初始值设定项列表组成,前面有一个冒号。它位于参数列表的右括号之后和函数体的左括号之前。

于 2012-11-11T06:29:56.123 回答