但是,这样做时,VS编译器会喊expression must have class type
,尽管在上面的行中我创建了该类的实例,但现在我正在Stack上处理该项目,而不是在堆上,所以我不希望使用new
,因为之后我必须删除该实例...任何建议吗?
这就是我尝试做的,
#include"Game.h"
#include <iostream>
int main()
{
Game g();
g.go();
return 0;
}
答案 0 :(得分:2)
如评论中所述,您需要将Game g();
更改为Game g;
。仅在具有要传递给构造函数的值时才使用括号。例如,如果您的构造函数是:
Game(std::string player, int damage);
然后您的代码应为:
Game g("MyGuy", 22);
但是,当您只执行Game g();
时,编译器会像尝试声明一个函数那样读取它-当然不是。