![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多态
文章平均质量分 71
大鹏068
这个作者很懒,什么都没留下…
展开
-
C++ 多态(四)动态转换
C++ 多态(四)动态转换 Dynamic casting 概述 在处理多态性时,您经常会遇到这样的情况:您有一个指向基类的指针,但您希望访问只存在于派生类中的一些信息。 考虑以下程序: #include <iostream> #include <string> class Base { protected: int m_value; public: Base(int value): m_value(value) {} vir原创 2021-05-14 15:26:10 · 775 阅读 · 0 评论 -
C++ 多态(三)拓展
C++ 多态(三)拓展 案例分析 分析下面程序执行输出的结果: #include <iostream> using namespace std; class A { public: virtual void fun1() { cout << "A fun1" << endl; } virtual void fun2() { cout << "A fun2" << endl;原创 2021-05-14 14:13:35 · 87 阅读 · 0 评论 -
C++ 多态(二)虚函数表
C++ 多态(二)虚函数表 The virtual table 概述 为了实现虚函数,C++ 使用一种特殊的后期绑定形式,称为虚表。虚表是函数的查找表,用于以动态/后期绑定的方式解析函数调用。虚表有时有其他名称,如“虚表”、“虚函数表”、“虚方法表”或“调度表”。 因为使用虚函数并不需要了解虚表的工作方式,所以可以将此部分视为可选阅读。 虚表实际上非常简单,尽管用文字来描述有点复杂。首先,每个使用虚函数的类(或派生自使用虚函数的类)都有自己的虚表。这个表是编译器在编译时设置的一个静态数组。虚表包含一个条目原创 2021-05-14 10:41:41 · 191 阅读 · 0 评论 -
C++ 多态(一)入门
C++ 多态(一) Polymorphism in C++ 概述 多态这个词的意思是有多种形式。通常,多态发生在类的层次结构中,它们通过继承相互关联。 C++ 多态意味着对成员函数的调用将导致执行不同的函数,这取决于调用该函数的对象类型。 考虑下面的例子,其中一个基类 Shape,由其派生出两个派生类:Rectangle 和 Triangle。 #include <iostream> using namespace std; class Shape { public: Shap原创 2021-05-14 09:29:21 · 159 阅读 · 0 评论