【发布时间】:2015-06-19 12:34:18
【问题描述】:
- 我的 check.h 文件有一个枚举作为私有变量。我不知道该怎么做才能将枚举声明为全局实体。
-
我在 check.cpp 中声明了一个具有枚举返回类型的函数。但它给出的错误如下。
- 此行有多个标记
- 无法解析类型“TStatus”
- “TStatus”没有命名类型
- 未找到成员声明
我的程序如下。谁能给我一个解决方案。
check.cpp
#include <iostream>
#include "check.h"
using namespace std;
check::check() { }
TStatus check::getStatus()
{
......
}
check::~check() { }
check.h
#ifndef CHECK_H_
#define CHECK_H_
class check {
private:
enum TStatus { ok,sold,defect };
public:
check();
~check();
TStatus getStatus();
};
#endif /* CHECK_H_ */
【问题讨论】:
-
不需要让它成为全局的,但它必须是公共的,否则除了类本身之外其他任何东西都不知道
-
我不想声明它是全局的。并且 TStatus check::getStatus() 是该类的函数。那么为什么它无法访问枚举。
-
...再次:如果它是私有的,除了类本身之外的任何代码都是未知的(即,您只能在类内部使用枚举)。如果您想将其用作返回类型,则必须将其公开!将其公开并不会使其成为全球实体。上课还是很紧张。无论如何,我不明白为什么您在全局范围内定义它时遇到问题,它只是一种类型......