2013-05-28 125 views
0
常量表達式

這個程序可能看起來像愚蠢的計劃,但我想知道它需要靜態類初始化

#include <iostream> 

using namespace std; 

class base 
{ 
    public: 
    static int i; 
    static int &j = i; 
}; 

int base::i=9; 

int main() 
{ 

    cout<<base::j<<" "<<base::i; 

    return 0; 
} 

的解決方案,當我編譯這個節目,我正在錯誤「常量表達式需要靜類的初始化」 誰能幫助我 在此先感謝

回答

3

簡單:將它淘汰類,以及:

#include <iostream> 

using namespace std; 

class base 
{ 
    public: 
    static int i; 
    static int &j; 
}; 

int base::i=9; 
int &base::j=base::i; 

int main() 
{ 

    cout<<base::j<<" "<<base::i; 

    return 0; 
} 

Live example

+0

謝謝你Angew – user2413497

+0

@ user2413497如果它適合你,你可以接受答案(綠色標記)。這就是工作原理。 – Angew