美文网首页
2018-01-28 高级多态(一)

2018-01-28 高级多态(一)

作者: 辣么大大大大 | 来源:发表于2018-01-28 13:17 被阅读0次

纯虚函数

纯虚函数是必须在派生类中重写的虚函数。通过将虚函数初始化为0来将其声明为纯虚的。
派生类重写所有虚函数,否则它也是ADT。

virtual void draw() = 0;
class Shape
{
public:
    Shape() {}
    virtual ~Shape() {}
    virtual long getArea() = 0;
    virtual long getPerim()= 0;
    virtual void draw() = 0;
private:
};

虚函数

  1. 使用虚成员函数实现多态。
  2. 虚成员函数的工作原理
    编译器创建虚成员函数表v-table。根据vptr指针指向的实际对象类型调用正确的函数。
  3. 不能通过基类指针访问派生类特有的方法。
  4. 虚析构函数
    如果一个函数是虚成员函数,那么析构函数也应该是虚成员函数。
  5. 使用虚成员函数的代价
    维护v-table会带来一些开销。

相关文章

  • 2018-01-28 高级多态(一)

    纯虚函数 纯虚函数是必须在派生类中重写的虚函数。通过将虚函数初始化为0来将其声明为纯虚的。派生类重写所有虚函数,否...

  • TypeScript基础入门之高级类型的多态的 this类型

    转发 # TypeScript基础入门之高级类型的多态的 this类型 高级类型 多态的this类型 多态的thi...

  • 什么是多态?哪里体现了多态的概念?

    知乎高级工程师问题解答 什么是多态?哪里体现了多态的概念? https://blog.csdn.net/lengy...

  • 面对对象高级编程

    面向对象高级编程: 面向对象编程:封装、继承和多态 面向对象高级编程:多重继承、定制类和元类

  • 2018-01-30

    2018-01-28 路易彬彥张娟 2018-01-28 22:18 · 字数 762 · 阅读 6 · 日记本 ...

  • 2018-01-29

    2018-01-28 路易彬彥张娟 2018-01-28 22:18 · 字数 762 · 阅读 6 · 日记本 ...

  • python2高级 多态

    class Duck(object): 2 def walk(self): 3 print('...

  • 读JavaScript高级程序设计之面向对象

    面向对象(Object - Oriented)OO 是现在高级程序语言必备的技能,面向对象一般封装,继承,多态等特...

  • 怎样理解Java的方法分派

    初级:多态,虚方法表的认识中级:对编译和运行时的理解和认识高级:对Java语言规范和运行机制的深入认识高级:横向对...

  • 2019-07-23

    java 基础 基础语法: 1-2天 编程思想: 面向对象 封装,继承,多态 高级应用 : 线程;IO; 网络 J...

网友评论

      本文标题:2018-01-28 高级多态(一)

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