首页 > 解决方案 > 我有一个游戏的主要内容,我正在尝试使用 .go() 方法

问题描述

但是,在这样做的同时,VS 编译器喊道expression must have class type,虽然在上面的行中我创建了该类的一个实例,但现在我正在从 Stack 处理这个项目,而不是堆,所以我不想使用new,因为我必须之后删除该实例...有什么建议吗?这就是我尝试做的,

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

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

标签: c++classmain

解决方案


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

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

那么你的代码应该是:

Game g("MyGuy", 22);

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


推荐阅读