C++例题分析1 构造函数初始化

来源:互联网 发布:知乎写给女儿的 编辑:程序博客网 时间:2024/06/06 02:18
#include using namespace std;class Student{  public:     Student(int i):age(i), num(i++)     {        cout<
输出结果11 10
为啥不是10 10呢?
原因如下
1.谁先初始化?
是依照初始化列表的顺序吗?age(i), num(i++);先age,后num?
显然不对;

应当按照类定义时的顺序初始化,先num后age

执行顺序 i值为10,赋给num;
i之后++;
i为11,赋给age

赛码网给出的答案是11 11
我用codeblock跑的是11 10
应该与编译器有关





原创粉丝点击