C++---------之--------【虚析构函数】

/**************************************************************************************************************************
模块说明
		虚析构函数

		【情况1】情况一:将基类Point中的析构函数声明为不带virtual的非析构函数 即:Point(){};
		        则运行结果为:executing Point destructor
		【情况2】情况二:将基类Point中的析构函数声明为虚析构函数,即:virtual ~Point(){}
				则运行结果为:executing Circle destructor
							  executing Point destructor
***************************************************************************************************************************/
#include
using namespace std;

class Point{
public:
	Point(){};
	~Point()					//情况一:将基类中的析构函数声明为非虚析构函数
	{
		cout<<"executing Point destructor"<


C++---------之--------【虚析构函数】_第1张图片



/**************************************************************************************************************************
模块说明
		虚析构函数

		【情况1】情况一:将基类Point中的析构函数声明为不带virtual的非析构函数 即:Point(){};
		        则运行结果为:executing Point destructor
		【情况2】情况二:将基类Point中的析构函数声明为虚析构函数,即:virtual ~Point(){}
				则运行结果为:executing Circle destructor
							  executing Point destructor
***************************************************************************************************************************/
#include
using namespace std;

class Point{
public:
	Point(){};
	virtual ~Point()					//情况二:将基类中的析构函数声明为虚析构函数
	{
		cout<<"executing Point destructor"<


C++---------之--------【虚析构函数】_第2张图片

你可能感兴趣的:(C++程序设计学习笔记)