Re: [問題] c++ class中帶有參數的成員初始化

看板Programming作者 (燒賣)時間18年前 (2007/12/17 11:33), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串4/4 (看更多)
補一個比較有趣的例子好了 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

12/17 13:37, , 1F
原來如此(筆記ing).
12/17 13:37, 1F

12/17 16:12, , 2F
:p
12/17 16:12, 2F

12/19 01:35, , 3F
避免這樣的寫法吧... 這意義不大
12/19 01:35, 3F
文章代碼(AID): #17PUu6eR (Programming)
文章代碼(AID): #17PUu6eR (Programming)