码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-11 15:38:13      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:include   编译   space   析构   ios   out   str   turn   rtu   

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

#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

  

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

标签:include   编译   space   析构   ios   out   str   turn   rtu   

原文地址:https://www.cnblogs.com/goudanli/p/8267358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!