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