Как избавиться от этой ошибки конструктора? - PullRequest
2 голосов
/ 15 декабря 2009

Я взял 2 ООП класса C #, но теперь наш профессор переключается на c ++. Итак, чтобы привыкнуть к c ++, я написал эту очень простую программу, но продолжаю получать эту ошибку:

error C2533: 'Counter::{ctor}' : constructors not allowed a return type

Я в замешательстве, потому что считаю, что я правильно написал свой конструктор по умолчанию.

Вот мой код для простого класса счетчика:

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;
}

Что я делаю не так? Я не указываю тип возвращаемого значения. Или я как-то?

Ответы [ 2 ]

14 голосов
/ 15 декабря 2009

Вы забыли точку с запятой в конце определения вашего класса. Без точки с запятой компилятор считает, что класс, который вы только что определили, является типом возврата для конструктора, следующего за ним в исходном файле. Это распространенная ошибка C ++: запомните решение, оно вам понадобится снова.

class Counter
{
private:
int count;
bool isCounted;

public:
Counter();
bool IsCountable();
void IncrementCount();
void DecrementCount();
int GetCount();
};
1 голос
/ 15 декабря 2009

Вам нужно завершить объявление класса точкой с запятой.

class Counter
{
private:
int count;
bool isCounted;

public:
Counter();
bool IsCountable();
void IncrementCount();
void DecrementCount();
int GetCount();
} ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...