gpt4 book ai didi

c++ - 为什么可以将枚举作为函数变量传递但不能返回枚举?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:37 26 4
gpt4 key购买 nike

我对我现在遇到的一个错误感到有点困惑。我类有一个 getter/setter。 setter 将枚举作为参数,getter 应返回此枚举。但是,我收到此 setter/getter 错误:

error: C2143: syntax error : missing ';' before 'Session::type'

就好像 SessionType 是未定义的。但是我没有得到与 setter 相同的错误。有什么理由吗?有什么办法可以解决这个错误吗?

(顺便说一句,如果我返回一个 int,它编译得很好,但我宁愿保持 getter 与 setter 一致)

这是我的代码:

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

最佳答案

改变

SessionType Session::type() const { // ERROR!!

Session::SessionType Session::type() const {

关于c++ - 为什么可以将枚举作为函数变量传递但不能返回枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com