推 Kelvinlai:感謝大大的回答我算有點明瞭了 03/03 01:28
※ 引述《Kelvinlai (盡人事聽天命)》之銘言:
: 推 tinlans:把成員初始列的初始順序調成跟 C++ 規範的一樣就行了。 02/27 20:12
: → Kelvinlai:調成跟C++規範???不太明瞭意思!! 02/27 22:56
class Demo {
int a_;
int b_;
public:
Demo() : b_( 2 ), a_( b_ + 2 ) {}
};
C++的成員初始化順序是"宣告時的順序"
不管建構子初始列怎麼寫,a_永遠都會比b_先初始化
因此上面那個例子的a_的初始值其實是沒意義的
當你建構子初始順序和宣告順序不同時
比較善良的編譯器就會出現警告
--
自High筆記(半荒廢)
http://legnaleurc.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.21.174