1:继承的本质和原理
2:派生类的构造过程
3:重载,覆盖,隐藏
4:静态绑定和动态绑定
5:多态,vfptr,vftable
6:抽象类的设计原理
7:多重继承以及问题
8:虚基类 vbptr 和vbtable
9:RTTI
10:C++四种类型强转

继承的本质和原理
1:代码的复用
类和类之间的关系
组合: a part of ….. 一部分的关系
继承: a kind of ….. 一种的关系

//代码1:
class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;

}

class B{
public:
     int md;
     int ma;
potected:
     int me;
     int mb;
private:
     int mf;
     int mc;

}

代码2:

class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;

}

//B继承 A,
class B : public A{
public:
     int md;
potected:
     int me;
private:
     int mf;
}

如上图,B继承A,那么B中对A 的ma ,mb,mc 的访问方式是怎么样的?能否访问?如下

class B : public A{
public:
     int md;
     void f(){
        cout<<ma<<endl ; // ??????
     }
potected:
     int me;
private:
     int mf;
}

1:父类的私有成员,子类不管是public,protected,private 哪种方式继承,子类中都是不可见的(注意不是private)
2:外部只能访问public成员,protected和private 的成员无法直接访问
3:在继承结构中,派生类从基类可以继承过来private成员,但是派生类中是看不见的(无法直接访问)
4:protected和private的区别?在基类中定义的成员,想被派生类访问,不想被外部访问,那么在基类
把相关成员定义成protected的,如果派生类和外部都不打算访问,那么在基类中,就把想关成员定义成private私有的

看下面继承方式

class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;
}

//B私有 继承 A,
class B : private A{
public:
     int md;
potected:
     int me;
private:
     int mf;
}

class C : public B{
public:
    void function(){
       ma,mb ,mc md, me,mf ;的访问权限是什么?

      ma 在 A 中是共有成员 -> 到B中 变成私有成员了 -》 C 中就不可见了
      mb 在 A 中是保护成员 -> 到B中 变成了私有成员了-> c 中不可见
      mc 在 A 中是私有成员 -> 到B中 不可见  -> C中也不可见

      md 在 B 中四 共有成员 -> C中还是共有  -> main(外部)可访问
      me 在 B 中四 保护成员 -> C中还是保护(C中可访问) -> main(外部)不可访问
      mf 在 B 中四 私有成员 -> C中不可见   -> main(外部)不可见

    }
}

默认的继承方式是什么?
要看派生类是用class定义的还是struct定义的?
class定义的派生类,默认继承方式是private私有的
struct定义的派生类,默认继承方式是public的

原文地址:http://www.cnblogs.com/erichome/p/16928943.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性