欧阳智薇真空照透视,狼雨论坛,bk2885航班
class 派生类名:访问属性 基类名{}
基类名::基类成员名
调用被覆盖的基类成员(一般不会覆盖基类成员变量,而是覆盖成员函数)继承逻辑(“是”):派生类是一种基类(如狗是动物)
复合逻辑(“有”):如果类a是类b的成员对象,则类b包含类a,类a是类b的一种固有属性或组成部分
class point{ double x,y; } class circle{ //不用继承,而采用复合关系 point center; double r; }
复合关系的另一种情况:
class master; class dog{ master *m; } class master{ dog *dog[10]; }
protected
保护成员派生类对象可以赋值给基类对象、初始化基类引用;派生类对象地址可以赋值给基类指针
若继承方式改成protected或private,上述规则1不成立
class base{} class derived:public base{} base b; derived d; b=d; base &br=b; base *bp=&b; //bp不能访问属于derived类的部分 derived *dp=(derived*)bp; //强制类型转换,需要保证bp指向derived类
直接基类:派生类直接继承的基类
间接基类:直接基类继承的所有基类
声明派生类时,只需声明其直接基类;派生类会自动向上继承其间接基类
构造顺序:间接基类→直接基类→派生类(析构反之)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论