#include<iostream>
#include<algorithm>
using namespace std;class Base{
public:void Fun(int x){cout<<"Base::Fun(int x)"<<endl;}void Fun(double x){cout<<"Base::Fun(double x)"<<endl;}//基类虚函数virtual void G(void){cout<<"Base::G(void)"<<endl;}
};class SubClass:public Base{
public:void Fun(int x){cout<<"SubClass::Fun(int x)"<<endl;}void Fun(double x){cout<<"SubClass::Fun(double x)"<<endl;}//覆盖基类虚函数virtual void G(void){cout<<"SubClass::G(void)"<<endl;}
};int main(){//SubClass *mm = new Base(); //错误//虚函数和纯虚函数的作用即多态,基类指针指向子类对象,当子类是G()重写(覆盖)了基类的虚函数,其实调用的是子类的G(),即多态精髓.Base *base = new SubClass();//基类指针指向子类对象//测试函数调用base->Fun(5);base->Fun(5.00);base->G();cout << "*********************" << endl;SubClass *cc = new SubClass();cc->Fun(5);cc->Fun(5.00);cc->G();cout << "*********************" << endl;Base *dd = new Base();dd->Fun(5);dd->Fun(5.00);dd->G();cout << "*********************" << endl;Base ee;ee.Fun(5);ee.Fun(5.00);ee.G();cout << "*********************" << endl;SubClass bb;bb.Fun(5);bb.Fun(5.00);bb.G();return 0;
}

C++多态虚函数demo相关推荐

  1. C++虚函数Demo - Win32 版本

    通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数. 为了消除这种情况,让基类指针能够访问派生类的成员函数,C++ 增加了虚函数(Virtual Function).使用虚函数,需要在 ...

  2. 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...

  3. C++ 多态 虚函数与纯虚函数

    C++ 多态 虚函数与纯虚函数 虚函数是C++重要思想-多态中不可或缺的一个知识点与用法,但初学者一般很难理解,在这里用通俗语言介绍一下. 百度百科: 在某基类中声明为 virtual 并在一个或多个 ...

  4. C++多态虚函数/纯虚函数demo

    #include <iostream> using namespace std;class A //A是一个抽象类,不能new A直接实例化. { public:virtual void ...

  5. C++ 多态虚函数常见问题

    哪些函数不能为虚函数? 非类成员的普通函数 静态(static)函数 构造函数不能是虚函数 (存储角度)虚函数的vtable,是存储在对象的内存空间的.对象没有实例化,意味着内存空间还没有,所以无法找 ...

  6. 【C++】多态 - 虚函数/虚析构函数以及虚函数表

    什么是多态: 指不同对象收到相同消息时或相同对象收到不同消息时产生不同的动作. 这里先说下为什么会用到虚函数: 以下面的程序为例: 这个程序中,Carp是Fish的继承类,而Carp中覆盖了Swim这 ...

  7. C++——多态|虚函数|重写|虚表

    文章目录 1. 多态的概念 1.1 概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 虚函数重写的三个例外: 2.4 普通调用和多态调用: 2.5 C++11 o ...

  8. c语言支持虚函数,C语言多态虚函数.doc

    中类的多态与虚函数的使用 出处:PConline 2005年03月16日 作者:管宁 责任编辑:xietaoming 文章导读:类的多态特性是支持面向对象的语言最主要的特性,很多人错误的认为,支持类的 ...

  9. c++基础学习(08)--(继承、重载、多态、虚函数)

    文章目录 目录 1.继承 2.重载 3.多态 && 虚函数 目录 1.继承 #include <iostream>using namespace std;// 基类 cla ...

最新文章

  1. i2c hid 触摸板不能用_I2C 总线协议初探 - STM32 I2C 接口外设学习笔记
  2. Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
  3. 手游特效太多怎么办?这里有一份性能优化方案可参考
  4. SAP Spartacus的单页面应用特性
  5. 打开android studio项目,为什么我们没有一个文件来打开Android Studio项目?
  6. 关于QT编译错误问题
  7. ValueError: optimizer got an empty parameter list
  8. isight2019安装教程_abaqus2019软件下载+安装教程
  9. html网页标准化技术,DIV+CSS网页标准化布局(一)(示例代码)
  10. Python SPSS教程
  11. 用这个玩吃鸡:宏按键加一键恢复加自由移动视角,你想要的功能它都有
  12. 【智能制造】海阔凭鱼跃:记一场工业场景下的AI技术实践
  13. c语言cyc函数,cyc指标源码
  14. WPF(3)----多窗口的实现
  15. 迷途中的融担:在下沉与专注中寻找未来
  16. xmuoj《C++与Python语法入门练习(By郭炜老师)》python参考代码
  17. Java程序员必看的9本基础书籍推荐!
  18. 世界人口你未必知道的事实
  19. linux使用tinyproxy代理上网
  20. Android Studio 好用的插件

热门文章

  1. 《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》——2.3 直接映射高速缓存...
  2. 《Python算法教程》——1.6 如果您感兴趣
  3. Softreference | WeakReference
  4. Win10文件管理器那些你不知道的秘密
  5. mybatis(二)
  6. 通过JDBC来理解反射机制
  7. django之get filter
  8. Window 2008 server DNS 无法解析ISA WPAD
  9. Javascript语法基础 - Javascript核心(一)
  10. 黑马程序员C++学习笔记(第二阶段核心:面向对象)(二)