64,683
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class A
{
public:
int x;
A(int i=10)
{
x=i;
cout<<"A:"<<x<<endl;
}
};
class B:public A
{
A a;
int x2;
public:
B(int i):a(i)
{
x2=i;
// 为什么这里的 A::x 是 10,而不是 5 呢?
cout<<"B:"<<x2<<", "<<A::x<<", "<<a.x<<endl;
}
};
int main()
{
B b(5);
return 0;
}
B(int i) :A(i), a(i)//--------显式调用A的构造函数,此时A的构造函数不再是默认参数,而是i------------
{
x2 = i;
// 此时A::x的值是5
cout << "B:" << x2 << ", " << A::x << ", " << a.x << endl;
}
VS2015 调试如下