码迷,mamicode.com
首页 > 编程语言 > 详细

C++继承

时间:2016-10-24 20:02:21      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:作用域   style   结构   利用   派生类   强制类型转换   操作符重载   概念   cte   

 继承概念:

       继承机制是面向对象程序设计是代码可以重复利用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生的新类称为派生类(和基类是两个不用的作用域),继承呈现了面向对象程序设计的层次结构,体现了有简单到复杂的认知过程

 

三种成员访问限定符:

             public       (不解释)

             protected (类内成员,想要被子类继承,但不想要在类外被访问)

             private      (无法直接在类外访问或者子类中继承)

 

继承关系:

              public继承       class B:public A  //(书写方式B继承A) ;is->a原则

              protected继承 (基类的非私有成员全都成为子类的保护成员)has-》a原则

              private继承      (基类的非私有成员全都成为子类的私有成员)

 

派生类的默认成员函数:

              构造函数

              拷贝构造函数

              析构函数

              赋值运算符重载

              取地址操作符重载

              const修饰的取地址操作符重载

继承与转换——赋值兼容规则—public

             1、子类对象可以赋值给父类对象(切割/切片)

             2、父类对象不可以赋值给子类对象

             3、父类的指针/引用可以指向子类对象

             4、子类指针/引用不能直接指向父类对象(可以通过强制类型转换) //*(B*)&a

 

单继承 & 多继承 & 菱形继承

单继承:(class B:public A) (B只有一个直接父类A)

多继承:  (class B:public A1,public A2)/(class B:public A1,public A2,public A3...) (B有两个或者两个以上的直接父类)

菱形继承: (class B1:public A   class B2:public A   class C:public B1   class C:public B2) (存在二义性和数据冗余问题)

虚继承:   (class B1:virtual public A   class B2:virtual public A) (解决了数据冗余和空间浪费问题,但访问虚继承成员开销会很大) **慎用

 

C++继承

标签:作用域   style   结构   利用   派生类   强制类型转换   操作符重载   概念   cte   

原文地址:http://www.cnblogs.com/JN-PDD/p/5994152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!