我有一个主要的游戏,我正在尝试使用.go()

时间:2018-11-20 16:59:40

标签: c++ class main

但是,这样做时,VS编译器会喊expression must have class type,尽管在上面的行中我创建了该类的实例,但现在我正在Stack上处理该项目,而不是在堆上,所以我不希望使用new,因为之后我必须删除该实例...任何建议吗? 这就是我尝试做的,

 #include"Game.h"
 #include <iostream>

 int main()
    {
     Game g();
     g.go();
     return 0;
    }

1 个答案:

答案 0 :(得分:2)

如评论中所述,您需要将Game g();更改为Game g;。仅在具有要传递给构造函数的值时才使用括号。例如,如果您的构造函数是:

 Game(std::string player, int damage);

然后您的代码应为:

Game g("MyGuy", 22);

但是,当您只执行Game g();时,编译器会像尝试声明一个函数那样读取它-当然不是。