试图创建对象
我试图创建对象的矢量的矢量,我不知道什么错误。试图创建对象
这里的代码
class nave {
public:
void sx(int i); int x();
void sy(int i); int y();
};
vector<nave> naves();
naves.push_back(nave);
cout << naves.size();
变化 -
vector<nave> naves(); // naves() is a function declaration whose return type
// is vector<nave>
到
vector<nave> naves;
矢量就像任何其他类。因此,它声明:
vector<nave> naves;
g ++在“naves.push_back(nave);”中继续返回“期望的主表达式”)'标记' “行 – Mete 2012-04-04 19:59:31
你不能自己推这个类。相反,你必须推动一个类的对象。所以,请做''naves.push_back(nave());'。注意'()' – Mahesh 2012-04-04 20:01:11
@Mahesh好抓!我没有看到那个! – MPelletier 2012-04-04 20:02:08
这样做:
vector<nave> naves;
naves.push_back(nave());
- 旧线:
vector<nave> naves();
被解释为函数声明。 - 旧线:
naves.push_back(nave);
实际上并没有实例nave
。
仅供参考,这被称为[最令人头疼的解析](http://en.wikipedia.org/wiki/Most_vexing_parse)。 – 2012-04-04 19:56:08
谢谢你的信息 – Mete 2012-04-04 20:03:13
你应该总是包含你得到的错误。如果不发布任何类型或错误消息,或者指出错误是编译时还是运行时,只是说“我不知道错在哪里”可能会阻止您收到有用的答案。这段代码很简单,但这不重要,但作为一个策略问题无论如何。 – 2012-04-04 20:23:26