作者legnaleurc (CA)
看板C_and_CPP
标题Re: [问题] 请问编译过程中显示出的问题
时间Sat Feb 28 15:59:58 2009
※ 引述《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
1F:推 Kelvinlai:感谢大大的回答我算有点明了了 03/03 01:28