作者freesamael (燒賣)
站內Programming
標題Re: [問題] c++ class中帶有參數的成員初始化
時間Mon Dec 17 11:33:23 2007
補一個比較有趣的例子好了
class Point
{
public:
Point();
private:
int x;
int y;
};
猜猜看以下這兩個 constructor 有什麼差別
Point() : x(3), y(x+1) {}
Point() : y(3), x(y+1) {}
前者得到的值是 x = 3, y = 4,
後者得到的值是 x 為未知數,y = 3。
原因是初始化順序和 member initialization list 上寫的順序無關,
而是跟 member 宣告順序有關。在這例子中 x 永遠會先初始化。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.82.153
推 PcGrek:原來如此(筆記ing). 140.124.42.60 12/17 13:37
推 sunneo: :p220.132.228.138 12/17 16:12
→ WPC001:避免這樣的寫法吧... 這意義不大 123.195.25.91 12/19 01:35