-
Worker和Farmaer都是虚继承的person,此时的MigrantWorker中就只有一份Person 的数据了,如果不是虚继承,就都两份
查看全部 -
把关键字virtual插在public前,此时为虚继承
查看全部 -
类D多继承的父类B,C来自同一个父类,此时类D中会有两份相同的数据,这是不被允许的,此时要用虚继承解决
查看全部 -
一个子类继承多个父类是,可以用到多继承如图
查看全部 -
当存在继承,用父类指针指向堆中子类对象,为了防止内存泄露,要用到虚析构函数virtual
查看全部 -
派生类对象可以赋值给基类,但是基类不能只给赋值给派生类
查看全部 -
public,公有继承时的继承成员如图
查看全部 -
公有继承时,成员函数对成员类型的访问
查看全部 -
三种继承方式
查看全部 -
继承方式用“”:“”
查看全部 -
个人总结:virtual当前出现的三种地方:
虚析构函数:当父类指针指向子类对象时,释放内存时,若不定义virtual,则仅释放父类内存。
虚继承:防止多继承和多重继承时,一个父类被继承多次,造成内存空间的浪费。
虚函数:当父类指针指向子类对象时,父类指针可以指向子类方法。
查看全部 -
如果用父类指针指向子类对象,父类指针也只能访问到父类所拥有的数据成员,无法访问子类所拥有的数据成员
查看全部 -
is a:代表的是类之间的继承关系
has a:代表的是对象和它的成员的从属关系。c++还有另一种实现has-a关系的途径----私有继承。使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。
使用公有继承,基类的公有方法将成为派生类的公有方法。简而言之,派生类将继承基类的接口,这是is-a关系的一部分。使用私有继承,基类的公有方法将成为派生类的私有方法
查看全部 -
子类与父类的同名成员函数无法形成重载,只能形成隐藏
查看全部 -
父子关系,成员同名,隐藏
调用子类以及父类中的同名函数
查看全部
举报