Re: [問題] c++ class中帶有參數的成員初始化
補一個比較有趣的例子好了
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
12/17 13:37, 1F
推
12/17 16:12, , 2F
12/17 16:12, 2F
→
12/19 01:35, , 3F
12/19 01:35, 3F
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章