子类赋给父类(c++初学者)

// 边写边想

// 探究子类对象赋给父类对象 

#include <iostream>
using namespace std;
class A
{
public :
int a;
int b;
};
class B : public A
{
public :
int a;
int b;
void func()
{
A::a = 100;//对继承部分的操控,通过域名的方式,也只能是在类中可以进行 
A::b = 200; 
}
};
int main(void)
{
cout << sizeof (A) << endl;
cout << sizeof(B) << endl;
// 这两行代码说明了,,A 中的两个数据成员和B中两个数据成员是没有关系的 
A a;
B b;
a = b;
cout << a.a << endl << a.b << endl;

b.func();
a = b;
cout << a.a << endl << a.b << endl;
// 这两个的比较还是很强烈的比较的,
/*
可以看出,子类对父类的赋值实际就是子类对象中继承自父类的部分赋值给父类对象!!
仔细想想,这样的赋值,,好像也只是单纯的对数据成员有效用,仿佛和成员函数没有啥子关系似的!
我们的确是可以在子类中对继承自父类的数据成员进行修改,而,,父类的成员函数呢??好像不能
对之作出什么修改吧,,
所以,,
对于子类对父类对象的赋值只是更数据成员有关系 ,
还有就是权限的交接!! 
*/ 
// b.(A::a)a= 1000; //  通过域名的方式企图对子类中继承之父类的成员操作,在子类的外面是不行的!!必须在类中 
return 0;

/*
看到一个词“截断” ,修饰子类对父类对象的赋值是非常好的!
即,子类的新成员对象在向父类对象赋值的时候被截断了!只剩下父类成员!! 

*/ 


// 很乐意将写代码时候的所想分享出来,很开心!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值