美文网首页
【C++】C++学习笔记之十二:虚函数与多态

【C++】C++学习笔记之十二:虚函数与多态

作者: Angeladoudou | 来源:发表于2016-10-17 17:06 被阅读0次

虚函数

虚函数的种类:

非虚函数(non-virtual function)——普通函数

不希望继承自其的子类对该函数覆写(override)
语法:<返回值><函数名>(参数表){函数体}

虚函数(virtual function)

希望继承自其的子类中对该函数覆写(override),但如果不重新定义,也可以使用父类中的定义。
语法: virtual <返回值><函数名>(参数表){函数体}

纯虚函数(pure virtual function)

希望同时也必须要在继承自其的子类中重新定义该函数,因为父类中只相当于一个接口模板,并没有对其定义,如果子类中不重写会编译出错。(常用作定义多人合作项目的功能接口,)
语法:virtual <返回值><函数名>(参数表)=0;

Template Method(一种使用虚函数的设计模式)

定义:

在父类的某函数执行过程中,把某一关键点延缓到子类中实现。把用这种方式设计类(中函数)的做法叫做Template Method

关键技术:

Template Method 实现的关键技术在于:类成员函数都有一个隐藏的this指针作为参数。

多态

继承要搭配虚函数使用才足够强大

组合(composition)+ 继承(Inheritance)

委托(Delegation)+ 继承(Inheritance)

相关文章

  • 深刻剖析之c++博客文章

    三大特性 封装、继承、多态 多态 C++ 虚函数表解析C++多态的实现原理 介绍了类的多态(虚函数和动态/迟绑定)...

  • 【C++】C++学习笔记之十二:虚函数与多态

    虚函数 虚函数的种类: 非虚函数(non-virtual function)——普通函数 不希望继承自其的子类对该...

  • 查漏补缺

    C++虚函数: 多态: 静态多态(重载)、动态多态(虚函数) 虚函数 虚函数表:编译器为每个类创建了一个虚函数表...

  • pwnable.kr之uaf && c++虚函数

    c++的逆向还是要熟悉下。 一、关于c++虚函数 虚函数使得c++能够实现多态,每个类有一个虚表,每个对象在实现的...

  • C/C++面试题库:这些问题你回答得出来吗

    基础部分 1.1. 语言 一、 C和C++的特点与区别? 二、 阐述C++的多态 三、 阐释c++虚函数的实现 四...

  • 2020-07-06----《C++类的学习》

    函数重载:同名不同参。 C++类的特点:封装、继承、多态。 //多态与函数重载是啥关系? 虚函数:和软件架构相关 ...

  • GeekBand-C++面向对象高级编程(下)-Week2

    对象模型:虚函数表(vtbl)与虚表指针(vptr) 我们知道,C++中,可以通过虚函数来实现多态性,而虚函数是通...

  • C++虚函数注意事项以及构成多态的条件

    C++ 虚函数对于多态具有决定性的作用,有虚函数才能构成多态。 虚函数注意事项 只需要在虚函数的声明处加上 vir...

  • C++虚函数

    C++虚函数 C++虚函数是多态性实现的重要方式,当某个虚函数通过指针或者引用调用时,编译器产生的代码直到运行时才...

  • 面试题目收集总结

    C++: 多态: 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) c语言和c++有什么区别?(...

网友评论

      本文标题:【C++】C++学习笔记之十二:虚函数与多态

      本文链接:https://www.haomeiwen.com/subject/hskgyttx.html