预期{在析构函数之前

时间:2015-11-02 06:44:44

标签: c++ unit-testing c++11

我的新课堂名为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)
{

}

`

1 个答案:

答案 0 :(得分:4)

构造函数定义不应该有: Field部分:

Fountainofyouth::Fountainofyouth(int startDrinks) // : Field <- remove this
{
    //ctor
}

如果您打算从Fountainofyouth继承Field,那么请在类的定义中继承,而不是在其构造函数中。

struct Fountainofyouth : Field
{
    // declaration of ctor, dtor, etc.
};

或者,如果FieldFountainofyouth的成员,则value initialize添加一对括号:

Fountainofyouth::Fountainofyouth(int startDrinks) : Field()
{
}