【发布时间】:2014-02-10 00:26:46
【问题描述】:
我有一个类似这样的类,声明了一个公共枚举:
// DataStorage.h
class DataStorage
{
enum ActionType { ADD, REMOVE };
public :
data();
void update(ActionType action, Data dataItem);
};
然后我有一个 Main.cc 像这样使用它......
// Main.cc
#include "DataStorage.h"
int main() {
DataStorage dataStorage;
Data dataItem("abc123");
dataStorage.update(ActionType.ADD, dataItem); <<-- error here
}
我的问题是编译时出现这个错误:
Main.cc:29:18: error: ‘ActionType’ was not declared in this scope
我做错了什么?枚举应该在哪里声明,我应该如何在 main 中使用它?
谢谢!
【问题讨论】:
-
ActionType是DataStorage的一部分,不是全局的。 -
@chris 我是否将“枚举 ActionType...”移动到“class DataStorage”行上方以使其成为全局对象?这就是我让它工作所需的全部内容吗?