打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
成员函数中调用虚函数
  #include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"A's cons."<<endl;}
virtual ~A(){cout<<"A's des."<<endl;}
virtual void f(){cout<<"A's f()"<<endl;}
void g(){f();}
};


class B:public A
{
public:
B(){f(); cout<<"B's cons."<<endl;}
~B(){cout<<"B's des."<<endl;}
};


class C:public B
{
public:
C(){cout<<"C's cons."<<endl;}
~C(){cout<<"C's des."<<endl;}
void f(){cout<<"C's f()."<<endl;}
};


void main(){
A *a = new C;
a->g();
delete a;

}


输出:

A's cons.
A's f()
B's cons.
C's cons.
C's f().
C's des.
B's des.
A's des.


构造函数和析构函数中调用虚函数采用静态联编,成员函数中调用虚函数采用动态联编。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浅谈C++中的友元关系
为什么C++静态成员函数不能访问非静态成员变量、不能调用非静态成员函数?
交叉继承派生类中成员引用.cpp
虚函数的特例
静态数据成员和静态函数成员
C++程序设计 试题及答案(三)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服