C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) |
您所在的位置:网站首页 › 抽象类可以用来实例化对象 › C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) |
C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) 结束了继承的介绍:C++进阶:详细讲解继承 那紧接着的肯定就是多态啦 文章目录 1.多态的概念2.多态的定义和实现2.1多态的构成条件2.2虚函数2.2.1虚函数的概念2.2.2虚函数的重写2.2.3虚函数重写的两个例外 2.3C++11里 override 和 final2.4重载、覆盖(重写)、隐藏(重定义)的对比 3.抽象类3.1概念3.2接口继承和实现继承 4.虚函数原理4.1虚函数表(vtable)4.2多态的原理4.3动态绑定与静态绑定 5.单继承和多继承关系的虚函数表5.1单继承中的虚函数表5.2多继承中的虚函数表 1.多态的概念多态是指同一个函数名可以根据调用对象的不同而具有不同的实现。它分为两种类型:编译时多态(静态多态)和运行时多态(动态多态)。 编译时多态: 通过函数重载和运算符重载实现,是在编译阶段确定函数调用。重载允许一个函数名有多个定义,编译器根据函数参数和上下文来选择正确的定义。运行时多态: 通过虚函数和继承实现,是在运行阶段确定函数调用。运行时多态允许通过基类指针或引用来调用派生类的函数,实现了动态绑定。 2.多态的定义和实现 2.1多态的构成条件多态的实现通常依赖于虚函数。在基类中声明虚函数,然后在派生类中进行重写(覆盖)。通过基类指针或引用调用虚函数时,将根据对象的实际类型调用相应的派生类函数 从上面这段话我们知道在继承中要构成多态还有两个条件: 必须通过基类的指针或者引用调用虚函数 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写 class Person { public: virtual void BuyTicket() { cout |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |