c++继承的秘密:子类(派生类)继承父类(基类)私有成员,子类如何修改父类成员

作者在学习C++设计模式时遇到困难,发现子类无法直接修改父类的私有成员,因为它们在内存中物理隔离。理解了父类私有成员的访问限制后,认识到只有通过父类对象才能操作其成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习c++设计模式的过程中,遇到了非常非常麻烦的麻烦。

我不知道会不会有人有同样的苦恼。

学习的c++的设计模式中,里面的设计模式基本上就和父类子类的继承脱不了干系,和虚函数和多态脱不了干系!!!

有一次我理解错了一个设计模式,我以为要用子类去修改父类的成员(其实不会有这种情况,一般父类都是接口,我现在明白了)但是我怎么也修改不了父类成员数据。

先说结论:

1、原来父类成员和子类成员在储存上是物理隔离的,父类成员在一个区块,子类成员,子类继承自父类的成员却都在另一个区块,无论怎么样,除非传入父类对象的地址或引用。否则子类对象无法修改父类对象数据。。。。现在看来我是个大傻瓜,想用子类对象继承的父类函数,修改父类对象。

2、父类私有成员的意思是:只对父类可见。

父类和子类都有一套父类成员(也就是有两套父类成员,原本天真的我以为子类中的父类成员就是指向原本的父类成员的)

子类对象虽然有父类的私有成员   但和父类对象的成员是两回事!

我真傻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值