【无标题】

复制代码
#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()

相关推荐
mit6.8245 分钟前
山脉二分找中值|子集型回溯
算法
乃瞻衡宇14 分钟前
Agent Skills 完全指南:让你的 AI Agent 拥有超能力
算法
mit6.82417 分钟前
pair<int, TreeNode*> dfs
算法
天天进步201519 分钟前
【Nanobrowser源码分析4】交互篇: 从指令到动作:模拟点击、滚动与输入的底层实现
开发语言·javascript·ecmascript
console.log('npc')26 分钟前
vue2中子组件父组件的修改参数
开发语言·前端·javascript
码点27 分钟前
【无标题】日文字库Japan.ini
开发语言
IT=>小脑虎31 分钟前
2026版 Python零基础小白学习知识点【基础版详解】
开发语言·python·学习
wjs202441 分钟前
抽象工厂模式
开发语言
lly20240642 分钟前
SVG 模糊效果详解
开发语言
期待のcode44 分钟前
Java虚拟机类加载机制
java·开发语言