在构造函数和析构函数中调用虚函数------新标准c++程序设计

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 20:55   656   0

  在构造函数和析构函数中调用虚函数不是多态,因为编译时即可确定调用的是哪个函数。如果本类有该函数,调用的就是本类的函数;如果本类没有,调用的就是直接基类的函数;如果基类没有,调用的就是间接基类的函数,以此类推。例如:

#include<iostream>
using namespace std;
class A
{
 public:
  virtual void hello(){cout<<"A::hello()"<<endl;}
  virtual void bye(){cout<<"A::bye"<<endl;}
};
class B:public A
{
 public:
  virtual void hello(){cout<<"B::hello"<<endl;}
  B(){hello();}
  ~B(){bye();}
};
class C:public B
{
 public:
  virtual void hello(){cout<<"C::hello"<<endl;}
};
int main()
{
 C obj;
 return 0;
}

  输出结果

B::hello
A::bye

  

转载于:https://www.cnblogs.com/l2017/p/8267358.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP