在 class 中使用 "enum" 时出错
Error using "enum" within a class
我收到以下关于我的枚举的错误消息,我不明白为什么。
我只有 1 个头文件和 1 个实现所有功能(和主要功能)的源文件。我在 class "Survivor"、"public" 中声明了枚举。我没有忘记在源文件中包含头文件。请帮我看看我做错了什么。
"error: 'e_status' does not name a type"
这是我的头文件:
class Survivor
{
public:
enum e_status {SINGLE, MARRIED, RELATIONSHIP};
char* get_name();
int get_age();
e_status get_status();
void set_name(char n[]);
void set_age (int a);
void set_status (e_status s);
const void print();
private:
char name [20];
int age;
e_status status;
};
这是我的源文件中的相关部分:
e_status Survivor::get_status()
{
return status;
}
您正试图在 class 之外引用;这样做:
Survivor::e_status Survivor::get_status()
您必须使用合格的名称
Survivor::e_status Survivor::get_status()
{
//...
}
类型 e_status
是 class Survivor
的成员。
return 类型的成员函数未在 class 范围内搜索,而例如在 class 范围内使用了参数类型。
考虑以下两个函数定义。
#include <iostream>
class Survivor
{
public:
enum e_status {SINGLE, MARRIED, RELATIONSHIP};
e_status get_status();
void set_status (e_status s);
//...
private:
e_status status;
};
Survivor::e_status Survivor::get_status()
{
return status;
}
void Survivor::set_status (e_status s)
{
status = s;
}
int main()
{
return 0;
}
我收到以下关于我的枚举的错误消息,我不明白为什么。 我只有 1 个头文件和 1 个实现所有功能(和主要功能)的源文件。我在 class "Survivor"、"public" 中声明了枚举。我没有忘记在源文件中包含头文件。请帮我看看我做错了什么。
"error: 'e_status' does not name a type"
这是我的头文件:
class Survivor
{
public:
enum e_status {SINGLE, MARRIED, RELATIONSHIP};
char* get_name();
int get_age();
e_status get_status();
void set_name(char n[]);
void set_age (int a);
void set_status (e_status s);
const void print();
private:
char name [20];
int age;
e_status status;
};
这是我的源文件中的相关部分:
e_status Survivor::get_status()
{
return status;
}
您正试图在 class 之外引用;这样做:
Survivor::e_status Survivor::get_status()
您必须使用合格的名称
Survivor::e_status Survivor::get_status()
{
//...
}
类型 e_status
是 class Survivor
的成员。
return 类型的成员函数未在 class 范围内搜索,而例如在 class 范围内使用了参数类型。
考虑以下两个函数定义。
#include <iostream>
class Survivor
{
public:
enum e_status {SINGLE, MARRIED, RELATIONSHIP};
e_status get_status();
void set_status (e_status s);
//...
private:
e_status status;
};
Survivor::e_status Survivor::get_status()
{
return status;
}
void Survivor::set_status (e_status s)
{
status = s;
}
int main()
{
return 0;
}