c++ - 我有一个游戏的主要内容,我正在尝试使用 .go() 方法
问题描述
但是,在这样做的同时,VS 编译器喊道expression must have class type
,虽然在上面的行中我创建了该类的一个实例,但现在我正在从 Stack 处理这个项目,而不是堆,所以我不想使用new
,因为我必须之后删除该实例...有什么建议吗?这就是我尝试做的,
#include"Game.h"
#include <iostream>
int main()
{
Game g();
g.go();
return 0;
}
解决方案
如评论中所述,您需要更改Game g();
为Game g;
. 仅当您有要为构造函数传入的值时,才使用括号。例如,如果您的构造函数是:
Game(std::string player, int damage);
那么你的代码应该是:
Game g("MyGuy", 22);
但是,当您只是这样做时Game g();
,编译器会像您尝试声明一个函数一样读取它——当然,您不是。
推荐阅读
- javascript - Rails 使用方法从一个 js 文件到另一个 js 文件
- sql - sp_msforeachtable 不可用:获取表名 + min(value) + max(value)
- python - 将列表的数据与其最后一个值配对
- javascript - 将依赖注入 Vuex 模块
- flutter - 如何使用 charts_flutter 包在 Flutter 中显示工具提示
- redhat - 如何在 Redhat 的 3scale 中将门户工件从一个环境移动到另一个环境
- node.js - 如何保存数组?
- javascript - 为什么我必须在反应上下文对象中创建空函数?
- javascript - 单击浏览器后退按钮时网页中的 Jquery 元素未加载到网页上
- jenkins - 从 jenkins 中的 sh 文件设置环境,并在构建的其余部分保留它