没有upcast 也不会发生多态
class A{ public: virtual void f(){ cout << "A::f()"<<endl;} };class B:public A{ public:virtual void f(){cout << "B::f()"<<endl;} };int main() {A a;B b;A *p = &b;p->f(); //发生了多态,这里调用的是B::f()。因为有upcast,所以是多态。a = b; //这里只是完成了一个赋值操作p = &a;p->f(); //调用的是A::f()return 0; }
转载于:https://www.cnblogs.com/buddho/p/10607173.html
没有upcast 也不会发生多态相关推荐
- linkin大话面向对象--多态
java引用变量有2个类型,一个是编译时类型,一个是运行时类型: 编译时类型:声明的类型,把它看做是什么东西 运行时类型:真正的类型,实际上指的是什么东西 如果编译时类型和运行时类型不同,就出现多态. ...
- 深入剖析C++多态、VPTR指针、虚函数表
在讲多态之前,我们先来说说关于多态的一个基石------类型兼容性原则. 一.背景知识 1.类型兼容性原则 类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代.通过公有继承,派 ...
- C++与Java多态的区别
多态是指用父指针指向不同子类对象时,调用其共有的函数,不同的子类会有不同的行为.虽然C++和Java都具有多态机制,但是他们的实现不同,使用时的效果也会略有不同. 在C++中 普通函数调用:具体调用哪 ...
- [C++]用多态实现简单异常处理
案例说明 设计一个数组类MyArray,重载[]符号操作, 数组初始化时,对数组的个数进行有效检查 1)index<0 抛出异常eNegtive 2)index=0 抛出异常eZero 3)in ...
- day10:多态,文件
多态 基本概念 类别 : 静态多态:函数重载和运算符重载数据静态多态, 动态多态:派生类和虚函数实现运行时多态 区别: 静态多态的函数地址早绑定--编译阶段确定函数地址 动态多态的函数地址晚绑定- ...
- C++核心编程:P10->类和对象----多态
本系列文章为黑马程序员C++教程学习笔记,前面的系列文章链接如下 C++核心编程:P1->程序的内存模型 C++核心编程:P2->引用 C++核心编程:P3->函数提高 C++核心编 ...
- 典型问题分析(十五)
在经过一段时间的编写,我们的数据结构库已经有了一定的规模.那么我们之前编写的代码就没有一点 bug 吗?之前每个代码都是经过测试了的,因此阔能是没有 bug 的,但是我们还是来对它进行分析,看看究竟是 ...
- StaticLinkList
文章目录 1 静态单链表的出现原因 2 静态单链表的实现思路 3 继承关系图 4 代码实现 5 StaticLinkList需要增加析构函数吗 1 静态单链表的出现原因 如果需要频繁的删除元素,并且数 ...
- 数据结构开发(7):典型问题分析(Bugfix)
0.目录 1.创建异常对象时的空指针问题 2.LinkList 中的数据元素删除 3.LinkList 中遍历操作与删除操作的混合使用 4.StaticLinkList 中数据元素删除时的效率问题 5 ...
- java 面试指南_Java面试参考指南–第1部分
java 面试指南 JAVA面向对象的概念 Java in基于面向对象的概念,它允许更高级别的抽象以实际方式解决任何问题. 面向对象的方法将实际对象中的问题解决方案概念化,更易于在整个应用程序中重用. ...
最新文章
- Niblack二值化方法的实现
- ETHNET DHCP的两种方式
- 归并排序模板(附求逆序对)
- matlab读取.xyz文件及任意有间隔符数据
- 【算法学习笔记】83.排序辅助 动态规划 SJTU OJ 1282 修路
- Adaboost算法原理分析和实例+代码(转载)
- CTF中的EXP编写技巧 zio库的使用
- 最佳论文!牛津大学揭示梯度下降复杂度理论
- netty在项目中实际使用_公房动迁中,实际使用人享有哪些利益?
- 关于 Hibernate 中的“脏数据”、“脏对象”
- 面试python说会为什么_Python面试必须要看的15个问题
- spss20安装许可证代码_Spss 23软件下载与安装
- 色彩搭配原理与技巧?
- SMT操作手册V1.0 模板
- 脑科学和类脑智能技术综述学习笔记
- pyqt5 点击开始按钮,执行事件,中途点击暂停按钮后,所执行的事件暂停
- 隐马尔可夫模型(三): 算法分类、解决方法
- 超详细从零记录Hadoop2.7.3完全分布式集群部署过程
- Redirected Walking
- Linux 网络设置(ifconfig、route、traceroute、netstat、ss、nslookup、dig、ping状态返回分析)