作者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
1F:推 PcGrek:原来如此(笔记ing). 140.124.42.60 12/17 13:37
2F:推 sunneo: :p220.132.228.138 12/17 16:12
3F:→ WPC001:避免这样的写法吧... 这意义不大 123.195.25.91 12/19 01:35