【无标题】

复制代码
#include <iostream>
using namespace std;

class Father
{
  public:
    Father() { A(); }
     void virtual A() { cout<<"Father::A()"<<endl; }
     void B() { cout<<"Father::B()"<<endl; A();}
};
class Son : public Father
{
  public:
    void A() { cout<<"Son::A()"<<endl; }
    void B() { cout<<"Son::B()"<<endl; }
};
int main()
{
  Father f;//father::A
  Son s;//father::a!!!
  Father *pf=&s;
  pf->A();
 
  pf->B();
  s.A();//son::a
  s.B();//son::b
}

关注到如果虚函数是在Father()的构造函数中,是不体现虚特性的,而在其它地方是体现的,比如关注void B()中的A()

相关推荐
平哥努力学习ing3 分钟前
《数据结构》-第八章 排序
数据结构·算法·排序算法
CoovallyAIHub3 分钟前
为AI装上“纠偏”思维链,开源框架Robust-R1显著提升多模态大模型抗退化能力
深度学习·算法·计算机视觉
lsx2024065 分钟前
CSS 图片廊
开发语言
coderxiaohan5 分钟前
【C++】C++11
开发语言·c++
雾岛听蓝7 分钟前
C++优选算法 | 双指针篇(一)
开发语言·c++
byzh_rc7 分钟前
[微机原理与系统设计-从入门到入土] 微型计算机基础
开发语言·javascript·ecmascript
编程大师哥8 分钟前
Java web
java·开发语言·前端
书中藏着宇宙10 分钟前
CornerNet的续篇(数据处理与训练)
开发语言·python
小棠师姐12 分钟前
随机森林原理与实战:如何解决过拟合问题?
算法·机器学习·随机森林算法·python实战·过拟合解决
你怎么知道我是队长14 分钟前
C语言---预处理器
c语言·开发语言·chrome