2014-01-11 45 views
-1
class mainClass { 
public: 
    static const bool testB; 

    void testFunction() 
    { 
     std::cout<<"We're here!"; 
     testB = true; 
    } 
}; 

當我運行這個時,我得到了主題中的錯誤。我做了一些研究,但無法解決問題以及如何解決問題。只讀變量的賦值

+0

問題是'const'關鍵字。 'const'代表「常量」。您正在嘗試更改常量或只讀變量的值。 –

+1

'testB'是'const',它可以被初始化但是沒有被賦值。 – Casey

+0

就是這樣。我現在覺得自己像個白癡。非常感謝你們。 – user273324

回答

0

您正在定義一個常量(只讀變量)testB,並試圖在方法testFunction內更改它的值 - 這是不允許的。想象一下,你有其他幾種方法試圖將這個值分配給不同的事物(真/假) - 它不是真正的只讀常量,是嗎?

試着改變你的代碼要做到這一點,而不是:

static const bool testB = true; 

如果你真的想改變它的價值,你需要改變它的聲明方式 - 也許是這樣的:

static bool testB; // now you can change the value in whatever function you want