【发布时间】:2009-08-21 14:19:12
【问题描述】:
struct A {
static const int a = 5;
struct B {
static const int b = a;
};
};
int main() {
return A::B::b;
}
上面的代码编译。但是,如果您阅读 Scott Myers 的 Effective C++ 书(第 14 页); 除了声明之外,我们还需要一个定义。 谁能解释为什么这是一个例外?
【问题讨论】:
-
代码确实包含“a”的定义。
-
不,它不包含定义。
-
@Henk。并不真地。尝试将 'a' 或 'b' 的地址传递给函数,看看编译器会生成什么消息!
标签: c++