class Foo {
private:
int m_i;
public:
Foo(int i) : m_i(i) {}
};
class FooA
{
private:
const static Foo & m_foo;
static Foo & m_foo2;
};
Q1>如何初始化静态常量引用?如何初始化const /非常量静态引用成员?
Q2>如何初始化非const静态参考?
注: 您可以为类FooA变化,以说明方法。
+1的//Foo.cpp评论(这些分配应在源文件,而不是头)和(如果我可以)另一个+1有关静态初始化顺序的悲剧问题的言论。 –
@Nawaz,你认为下面的代码是合法的吗? 'const Foo&FooA :: m_foo = Foo(10); Foo&FooA :: m_foo2 = Foo(10);' – q0987
@ q0987:你试过编译它吗?它编译成功吗?第一行会编译,但是你不能使用'm_foo'。不要这样做。做这个intead:'Foo foo1(10),foo2(20); const Foo&FooA :: m-foo = foo1; Foo&FooA :: m_foo2 = foo2;' – Nawaz