2014-02-08 53 views
0

我有一个非常基本的问题。typedef枚举不起作用C++

.H

private: 
list <int> Stack; 

typedef enum 
{ 
    Push, 
    Pop, 
    Min, 
    Display 
}Operation; 

Operation map(string s); 

的.cpp:

Operation min_Stack::map(string s) 
{ 

编译器不抱怨的.h文件中但它的.cpp给错误: “标识操作不明”。

我无法找到我在这里做错了什么。

+1

该问题与'typedef'无关。 'enum'在'min_stack'的范围内声明。 – juanchopanza

+0

不要做typedef枚举(或'struct'或'class')'{} X;',它是一个Cism。只需编写'enum X {};'。 – Griwes

+0

在C++中,'typedef'不是必需的。 –

回答

4

而不是

Operation min_Stack::map(string s) 

min_Stack::Operation min_Stack::map(string s) 

编译器搜索在命名空间范围的返回类型,并没有找到,因为名字是类min_Stack内部定义的名称。

+0

哇..我多么愚蠢..只要网站允许我会接受这个答案:) – user2407394