最近在学习c++设计模式的过程中,遇到了非常非常麻烦的麻烦。
我不知道会不会有人有同样的苦恼。
学习的c++的设计模式中,里面的设计模式基本上就和父类子类的继承脱不了干系,和虚函数和多态脱不了干系!!!
有一次我理解错了一个设计模式,我以为要用子类去修改父类的成员(其实不会有这种情况,一般父类都是接口,我现在明白了)但是我怎么也修改不了父类成员数据。
先说结论:
1、原来父类成员和子类成员在储存上是物理隔离的,父类成员在一个区块,子类成员,子类继承自父类的成员却都在另一个区块,无论怎么样,除非传入父类对象的地址或引用。否则子类对象无法修改父类对象数据。。。。现在看来我是个大傻瓜,想用子类对象继承的父类函数,修改父类对象。
2、父类私有成员的意思是:只对父类可见。
父类和子类都有一套父类成员(也就是有两套父类成员,原本天真的我以为子类中的父类成员就是指向原本的父类成员的)
子类对象虽然有父类的私有成员 但和父类对象的成员是两回事!
我真傻