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

C++继承、多态总结

时间:2016-09-02 16:09:50      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:c++   继承   多态   

继承&多态

继承

概念

继承是面向对象复用的重要手段

继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西

三种继承关系

public

protected

private

赋值兼容规则

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

父类对象不能赋值给子类对象

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

子类的指针/引用不能指向父类对象(可以通过强制类型转换完成)

继承体系中的作用域

在继承体系中基类和派生类都有独立的作用域

隐藏:子类和父类中有同名成员,子类成员将屏蔽父类对成员的直接访问。

(在子类成员函数中,可以使用 基类:基类成员 访问)

注意在实际中继承体系里面最好不要定义同名成员

类的六个默认成员函数

在继承关系里面,在派生类中如果没有显式定义这六个成员函数,编译系统会默认合成这六个默认的成员函数。

构造函数、拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载、const修饰的取地址操作符重载

继承的种类

单继承

----->一个子类只有一个直接父类

多继承

----->一个子类有两个或以上直接父类

多重继承

菱形继承

虚继承

多态

概念

虚函数

子主题 1

子主题 2

子主题 3

子主题 4

分类

动态多态(晚绑定)

前提:以封装和继承为基础、2个或2个以上类

virtual关键字

虚析构函数

解决问题:子类构造函数中从堆中申请对象,造成内存泄漏

静态多态(早绑定)

编译之前就确定使用哪个函数

纯虚函数

继承体系同名成员函数的关系

重载

在同一作用域

函数名相同,参数不同

返回值可以不同

覆盖(重写)

不在同一作用域(分别在基类和派生类)

函数名、参数、返回值都相同(协变例外)

基类函数必须有virtual关键字

访问修饰符可以不同

隐藏(重定义)

不在同一作用域(分别在基类和派生类)

函数名相同

在基类和派生类中只要不构成重写就是重定义


本文出自 “zgw285763054” 博客,请务必保留此出处http://zgw285763054.blog.51cto.com/11591804/1845575

C++继承、多态总结

标签:c++   继承   多态   

原文地址:http://zgw285763054.blog.51cto.com/11591804/1845575

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