class A
{
public:
A()
{
a =1;
}
int a;
void OutPut()
{
cout<<"A"<<a<<endl;
}
};
class B : public A
{
public:
B()
{
a =2;
}
void OutPut()
{
cout<<"B"<<a<<endl;
}
};
void main()
{
A a;
B b;
a.OutPut();//结果为1 a = b;
a.OutPut();//结果为2
A a1;
B b1;
A &r = a1;//引用变量r是a1的别名 r.OutPut();//结果为1
r = b1;//这句怎么理解? r.OutPut();//结果为2}
void main()
{
A a;
B b;
a.OutPut();//结果为1 a = b;
a.OutPut();//结果为2
A a1;
B b1;
A &r = a1;//引用变量r是a1的别名 r.OutPut();//结果为1
r = b1; // 此处要把B类型的对象b1切割为A类型,并且实际上改变的是a1,因为r是a1的引用 r.OutPut();
}