#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
应该与编译器有关