我的新课堂名为Fountainofyouth,我遇到了问题。在尝试构建整个项目调试器后显示
warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
和
错误:expected '{' before 'Fountainofyouth'
任何人都可以告诉我发生了什么事吗?
Fountainofyouth.cpp的内容:
#include "Fountainofyouth.h"
//warning
Fountainofyouth::Fountainofyouth(int startDrinks) : Field
{
//ctor
}
//error
Fountainofyouth::~Fountainofyouth()
{
//dtor
}
string Fountainofyouth::fieldType()
{
return 0;
}
bool Fountainofyouth::canEnter(Unit* unit)
{
return 0;
}
void Fountainofyouth::affect(Unit* unit)
{
}
`
答案 0 :(得分:4)
构造函数定义不应该有: Field
部分:
Fountainofyouth::Fountainofyouth(int startDrinks) // : Field <- remove this
{
//ctor
}
如果您打算从Fountainofyouth
继承Field
,那么请在类的定义中继承,而不是在其构造函数中。
struct Fountainofyouth : Field
{
// declaration of ctor, dtor, etc.
};
或者,如果Field
是Fountainofyouth
的成员,则value initialize添加一对括号:
Fountainofyouth::Fountainofyouth(int startDrinks) : Field()
{
}