-
范围大的初始化范围小的对象是可以的
查看全部 -
子类父类同名函数无法重载只能隐藏
查看全部 -
函数可以隐藏,数据只要同名也会隐藏
查看全部 -
访问隐藏函数方法
查看全部 -
子类父类函数名同名,则子类隐藏父类该函数,特殊方法能访问到
查看全部 -
private继承方式
查看全部 -
protected继承方式
查看全部 -
public继承方式
查看全部 -
虚继承不能接受子类传递的参数,只能按照初始定义的数据
查看全部 -
给父类定义虚析构函数,能保证释放父类指向子类的指针时,先执行子类的析构函数,再执行父类的析构函数。
查看全部 -
宏定义是解决重定义的问题,重定义就是如果在多个头文件中引用了同一个或多个头文件,编译器在编译的时候会多次编译头文件,加上宏定义使用#ifdef 来判断一下就可以避免这种情况
查看全部 -
,虚继承虽然会使得多次构造和析构的问题改变,但也会使得子类无法传送数据到父类里去而使用默认参数。
查看全部 -
通过宏定义解决重定义
在被继承的类的.h中:
1234 #ifndef PERSON_H //只要后面的名字能区分于其他文件即可
#define PERSON_H
//代码段
#endif
查看全部 -
,虚继承(virtual):为了解决继承了两次同一个父类从而有2个一样的数据成员,使其只有一个。
【菱形继承】B和C都继承A,而D继承了B和C
class Worker:virtual public Person{}; class Farmer:virtual public Person{}; class MigrantWorker:public Worker,public Farmer{};//农民工这个类中只含有一份Person的数据
查看全部 -
【多重继承】:步兵类继承了士兵类,士兵类继承了人类
【多继承】:A继承了B,也继承了C(比如农民工类继承了农民类也继承了工人类),一个子类同时有两个父类,继承方式要写上(public/private/protected?),如果不写则系统默认为private
1 class
MigrantWorker:
public
Worker,
public
Farmer{...};
查看全部
举报