C ++将枚举传递给对象构造函数

时间:2011-07-21 03:25:41

标签: c++ eclipse constructor enums

说我有以下内容:

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中。为什么会这样?我能解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

修复了一些语法错误(,定义中的额外Enum;Enum定义后丢失Foo后,您的代码运行了 - 能够gcc。点击此处:http://www.ideone.com/GZdNM

我真的不明白你要对enum做些什么,但可以肯定的是,调用它Enum可能不是一个好主意......

答案 1 :(得分:1)

听起来您忘了将foo.C链接到最终的应用程序中。