- class 子类名 : 继承方式(权限) 基类名(父类名)
- {
-
- }
简单的实现和测试:
- class BasePage
- {
- public:
- void header()
- {
- cout << "基础框架" << endl;
- }
- };
-
- class FuncFragment : public BasePage
- {
- public:
- void content()
- {
- cout << "正文" << endl;
- }
- };
-
- //继承:
- void test5()
- {
- FuncFragment().header(); //这里访问的是子类继承过来的方法,不是父类的方法
- FuncFragment().content();
-
- }
注意:
父类中所有protected成员在子类中为protected属性ed
当羊类,和驼类继承动物类;羊驼类继承羊类和驼类
会导致动物类被羊驼类多次继承
为了避免这种情况,就有了虚继承的出现
-
- class Animal //虚基类
- {
- public:
- Animal(){
- len = 10;
- };
- int len;
- };
-
-
- class Sheep : virtual public Animal
- {
- public:
-
- };
- C
- class Camel: virtual public Animal
- {
- public:
-
- };
-
- class CNM : public Sheep, public Camel
- {
- public:
-
- };
- //菱形继承问题:
- void test2()
- {
- CNM sun;
- cout << sun.len << endl;
- cout << CNM().Sheep::len << endl;
- }
//VStudio 开发人员命令提示符操作:
进入目标盘符->目标路径->dir查看索引->cl /d1 reportSingleClassLayout类名 文件名.cpp
可以查看空间使用情况。详情请见黑马c++教程菱形继承章节