请考虑以下事项:
class Specimen
{
public:
enum Gender getGender();
private:
enum Gender { MALE=1, FEMALE=2, ALIEN=3, HYBRID=4};
}
这一部分:
Gender gender;
私人下的
enum Gender Specimen::getGender()
{
return gender;
}
这是一个成员函数 编译说 “错误C2440:'返回':无法从'标本::性别'转换为'性别' 我也尝试从函数def和函数原型中删除“枚举”
我不确定我需要修复什么
答案 0 :(得分:3)
Specimen
不在范围内,因此您必须符合条件:
enum Specimen::Gender Specimen::getGender()
{
return gender;
}
这在C ++ 11中也有效:
auto Specimen::getGender() -> Gender
{
return gender;
}
答案 1 :(得分:1)
目前还不清楚gender
和getGender()
的声明/定义方式和位置,但以下编译:
class Specimen
{
public:
enum Gender { MALE=1, FEMALE=2, ALIEN=3, HYBRID=4};
Gender getGender();
private:
Gender gender;
};
Specimen::Gender Specimen::getGender()
{
return gender;
}
int main() {}
查看工作here。
请注意,enum Gender
已移至getGender()
声明之上,而Gender
在Specimen::Gender
定义中被视为getGender()
。