【发布时间】:2009-03-25 13:12:54
【问题描述】:
谁能解释为什么以下代码无法编译(在 g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-49) 上)?
struct X {
public:
enum State { A, B, C };
X(State s) {}
};
int main()
{
X(X::A);
}
我得到的信息是:
jjj.cpp:在函数'int main()'中:
jjj.cpp:10:“X X::A”不是“struct X”的静态成员
jjj.cpp:10: 没有匹配函数调用 'X::X()'
jjj.cpp:1:候选人是:X::X(const X&)
jjj.cpp:5: X::X(X::State)`
这是错误的代码还是编译器错误?
Neil+Konrad 解决的问题。请参阅下面 Neil 的答案。
【问题讨论】:
标签: c++ enums constructor temporary