Я немного запутался с ошибкой, которая у меня сейчас есть. У меня есть получатель / установщик в моем классе. Установщик принимает перечисление в качестве параметра, и получатель должен возвращать это перечисление. Однако я получаю эту ошибку для получателя:
ошибка: C2143: синтаксическая ошибка: отсутствует ';' до 'Session :: type'
как если бы SessionType
не было определено. Однако я не получаю ту же ошибку для сеттера. Есть ли причина, почему? И есть ли способ исправить эту ошибку?
(кстати, он прекрасно компилируется, если я возвращаю int
, но я бы предпочел, чтобы метод получения соответствовал параметру)
Вот мой код:
Session.h
class Session {
public:
enum SessionType {
FreeStyle,
TypeIn,
MCQ
};
explicit Session();
SessionType type() const;
void setType(SessionType v);
private:
SessionType type_;
}
Session.cpp:
SessionType Session::type() const { // ERROR!!
return type_;
}
void Session::setType(SessionType v) { // No error?
if (type_ == v) return;
type_ = v;
}