如何消除这个构造函数错误? 我已经参加了2个OOC C类课程,但是现在我们的教授正在切换到C++。所以,为了适应C++,我编写了这个非常简单的程序,但是我一直在得到这个错误:

如何消除这个构造函数错误? 我已经参加了2个OOC C类课程,但是现在我们的教授正在切换到C++。所以,为了适应C++,我编写了这个非常简单的程序,但是我一直在得到这个错误:,c++,compiler-errors,C++,Compiler Errors,错误C2533:“计数器:{ctor}”:构造函数不允许返回类型 我很困惑,因为我相信我已经正确地编写了默认构造函数 下面是我的简单计数器类代码: class Counter { private: int count; bool isCounted; public: Counter(); bool IsCountable(); void IncrementCount(); void DecrementCount(); int GetCount(); } Counter::Counter()

错误C2533:“计数器:{ctor}”:构造函数不允许返回类型

我很困惑,因为我相信我已经正确地编写了默认构造函数

下面是我的简单计数器类代码:

class Counter
{
private:
int count;
bool isCounted;

public:
Counter();
bool IsCountable();
void IncrementCount();
void DecrementCount();
int GetCount();
}

Counter::Counter()
{
count = 0;
isCounted = false;
}

bool Counter::IsCountable()
{
if (count == 0)
    return false;
else
    return true;
}

void Counter::IncrementCount()
{
count++;
isCounted = true;
}

void Counter::DecrementCount()
{
count--;
isCounted = true;
}

int Counter::GetCount()
{
return count;
}

我做错了什么?我没有指定返回类型。还是我?你忘了在你的类定义末尾的分号。如果没有分号,编译器会认为您刚才定义的类是源文件中紧随其后的构造函数的返回类型。这是一个常见的C++错误,记住解决方案,你需要它。
class Counter
{
private:
int count;
bool isCounted;

public:
Counter();
bool IsCountable();
void IncrementCount();
void DecrementCount();
int GetCount();
};

您需要以分号结束类声明

class Counter
{
private:
int count;
bool isCounted;

public:
Counter();
bool IsCountable();
void IncrementCount();
void DecrementCount();
int GetCount();
} ;

哇!就这样。在C++中,在类定义之后需要分号?这是GCC闪耀的地方——你得到了诊断“注释:(也许在‘计数器’的定义之后缺少分号”@亚历克斯是的——就像你在C中的结构定义之后需要它们一样。有时候你真的会陷入痛苦的世界。。。而且它跨越文件(使用include机制)的事实也不是很吸引人:/@Neil:在所有情况下?MSVC在某些情况下也会这样做,但这显然取决于上下文。有时,它无法猜测这是错误的可能解释。请仔细阅读初始化列表:IsCountable可以简化为
返回计数==0
。顺便说一句,如果从未读取(使用)过,为什么会有成员
isCounter
?更正,这就是为什么会有
isCounted
…@Georg:member初始化列表。重要区别,还有一个常见错误。@Tomalak:所以链接的资源说。。。在这种情况下,应该很清楚。。。