Win7-64位 cygwin的 克++ -std = GNU ++ 11(4.8.3)你如何初始化構造函數體中的變量而不是定義中的變量?
在可變 '分區' 下面的片段必須在調用slipInit後進行初始化。編譯器會抱怨(哦,非常痛苦),除非我在定義中初始化分區(在':'之後)。我剛開始使用gnu ++ 11,所以這是一個不幸的意外。有沒有簡單的解決方法,或者我必須創建另一種方法來執行初始化?
StringPartition::StringPartition(vector<string*>* vec, long debugFlags)
: vec(*vec)
, debugFlags(debugFlags) {
SlipCellBase::slipInit(SLIPALLOCATION, SLIPALLOCATION);
partition = * new SlipHeader();
}; // StringPartition::StringPartition()
Error Message
error: uninitialized reference member 'StringPartition::partition' [-fpermissive]
似乎'分區'可能會更好地作爲智能指針而不是參考。 – 2014-11-05 15:06:56
什麼是和如何構建'智能指針'(我只是一個愚蠢的程序員)? – 2014-11-05 15:13:40
閱讀:http://stackoverflow.com/q/106508/10077 C++ 11提供了幾種智能指針類型。最流行的是['std :: unique_ptr'](http://en.cppreference.com/w/cpp/memory/unique_ptr)和['std :: shared_ptr'](http://en.cppreference.com/W/CPP /存儲器/ shared_ptr的)。 – 2014-11-05 15:14:31