说我有以下内容:
Foo::Foo() {
value = 25; //default constructor...
}
Foo::Foo(Enum bar) {
value = (int)bar; //purpose is to allow an integer to take enum constant's integer value.
}
...从
enum Enum
{
A = 25,
B = 50,
}
class Foo
{
public:
Foo();
Foo(Enum bar);
private:
int value;
}
然而,如果我做以下事情:
Enum bar = A; //A = 25
Foo * foo = new Foo(A); //error: "undefined reference to Foo::Foo(Enum)"
这是在Eclipse CDT 3.6中。为什么会这样?我能解决这个问题吗?
答案 0 :(得分:4)
修复了一些语法错误(,
定义中的额外Enum
,;
和Enum
定义后丢失Foo
后,您的代码运行了 - 能够gcc
。点击此处:http://www.ideone.com/GZdNM
我真的不明白你要对enum
做些什么,但可以肯定的是,调用它Enum
可能不是一个好主意......
答案 1 :(得分:1)
听起来您忘了将foo.C
链接到最终的应用程序中。