C++继承多态总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++继承多态总结相关的知识,希望对你有一定的参考价值。

继承&多态

继承

概念

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

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

三种继承关系

public

protected

private

赋值兼容规则

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

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

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

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

继承体系中的作用域

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

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

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

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

类的六个默认成员函数

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

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

继承的种类

单继承

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

多继承

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

多重继承

菱形继承

虚继承

多态

概念

虚函数

子主题 1

子主题 2

子主题 3

子主题 4

分类

动态多态(晚绑定)

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

virtual关键字

虚析构函数

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

静态多态(早绑定)

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

纯虚函数

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

重载

在同一作用域

函数名相同,参数不同

返回值可以不同

覆盖(重写)

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

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

基类函数必须有virtual关键字

访问修饰符可以不同

隐藏(重定义)

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

函数名相同

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


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

以上是关于C++继承多态总结的主要内容,如果未能解决你的问题,请参考以下文章

C++之多态总结(多态的定义及实现,抽象类,多态原理,单继承,多继承中的虚函数表)

C++ 封装,继承,多态总结

C++封装继承多态总结

c++面向对象三大特征封装继承和多态知识总结

9-5:C++多态之多态和继承的经典题目以及面试中常考内容

C++多态