我正在使用gcc(Debian 4.4.5-8)4.4.5。使用以下代码,我收到链接错误:
/tmp/ccOeGgC9.o:在功能
的引用A::func()':
B :: CONST_B'
(.text+0x1b): undefined reference to
(.text + 0x23):未定义对`A :: CONST_A'
class A {
public:
static const int CONST_A = 10;
int func();
};
class B {
public:
static const int CONST_B = 20;
};
int A::func() {
bool c = true;
const int a = (c == true) ? B::CONST_B : CONST_A;
}
int main() {
return 0;
}
要修复错误,我必须编写cpp文件:
int A::func() {
bool c = true;
int a = CONST_A;
a = (c == true) ? B::CONST_B : a;
}
int main() {
return 0;
}
你能解释为什么我不能编译第一个代码吗?
答案 0 :(得分:0)
class A {
public:
static const int CONST_A = 10;
int func();
};
此示例中的CONST_A
等静态成员必须在类
class A {
public:
static const int CONST_A = 10;
int func();
};
const int A::CONST_A = 10;