关于析构函数

原创 2007年09月23日 16:52:00

注意:#include <iostream.h>

class Base

{

public:

       Base(){cout<<"Base Constructor!"<<endl;}

        ~Base(){cout<<"Base Destructor!"<<endl;}

};

 

class Derived: public Base

{

public:

       Derived(){cout<<"Derived Constructor!"<<endl;};

       ~Derived(){cout<<"Derived Destructor!"<<endl;};

};

 

void main()

{

       Derived *pb;

       pb = new Derived;

       delete pb;

}

结果:

Base Constructor!

Derived Constructor!

Derived Destructor!

Base Destructor!

 

#include <iostream.h>

class Base

{

public:

       Base(){cout<<"Base Constructor!"<<endl;}

        ~Base(){cout<<"Base Destructor!"<<endl;}

};

 

class Derived: public Base

{

public:

       Derived(){cout<<"Derived Constructor!"<<endl;};

       ~Derived(){cout<<"Derived Destructor!"<<endl;};

};

 

void main()

{

       Base *pb;

       pb = new Derived;

       delete pb;

}

结果:

Base Constructor!

Derived Constructor!

Base Destructor!

 

如果基类的析构函数为virtual ~Base,则结果为

Base Constructor!

Derived Constructor!

Derived Destructor!

Base Destructor!

 

关于析构函数析构函数

#include using namespace std; class A{ public:  A(){cout     virtual void g(){cout     virtual void...
  • caojunhao123
  • caojunhao123
  • 2013年10月12日 13:47
  • 501

析构函数声明为私有的作用

当我们规定类只能在堆上分配内存时,就可以将析构函数声明为私有的。class alloc{public:    alloc():private:   ~alloc();}; 如果在栈上分配空间,类在离开...
  • jia_xiaoxin
  • jia_xiaoxin
  • 2008年11月21日 23:09
  • 7349

C++类有继承时,析构函数必须为虚函数

虚函数与多态一文中讲了虚函数的用法和要点,但少讲了一点,就是虚函数在析构中的用法,本文就是修复一bug的。C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。假设我...
  • luoweifu
  • luoweifu
  • 2016年12月21日 09:24
  • 2484

C++何时需要自定义析构函数呢?

对象销毁时  如果我们自己没有写析构方法,编译器会帮我们写一个然后调用。 那么问题来了,既然我不写,编译器会帮我写,那我干嘛要写??? 有木有什么情况必须我自己写的???? 处理内存的时...
  • love9099
  • love9099
  • 2015年01月24日 17:51
  • 1209

C++ 默认析构函数

1. 与构造函数一样,假如我们不指定自己的析构函数,那么编译器将为我们创建一个默认析构函数。        析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要用户调用,而是在...
  • helainthus
  • helainthus
  • 2016年05月16日 13:59
  • 3092

为MFC应用程序添加析构函数

  MFC编写的智能设备应用程序,有些自己创建的GDI资源需要释放,以免造成内存泄露。这样有些代码想放到主对话框的析构函数中。这时会发现找不到主对话框的析构函数,只能看到构造函数。  这就需要自己来为...
  • joyzml
  • joyzml
  • 2010年01月29日 14:05
  • 6733

将析构函数声明为private的作用

用声明创建一个栈对象时,会发生如下操作 1、会移动栈顶指针以“挪出”适当大小的空间 2、在这个空间上直接调用对应的构造函数以形成一个栈对象 3、当函数返回时,会调用其析构函数释放这个对象 4、调整栈顶...
  • HITXuQin
  • HITXuQin
  • 2013年10月18日 11:33
  • 1784

C++中基类的析构函数为什么要用virtual虚析构函数

C++中基类的析构函数为什么要用virtual虚析构函数, 弄清楚为什么。
  • IIcyZhao
  • IIcyZhao
  • 2013年09月22日 18:41
  • 4912

关于析构函数和纯虚函数

之前一直不知道,虚析构函数yo
  • guozhengdong
  • guozhengdong
  • 2014年09月29日 22:18
  • 1014

立此存照26[C++]为什么VS2013不能显示析构函数中的输出语句

#include using namespace std; class A { public: A() { cout
  • u011559205
  • u011559205
  • 2015年01月07日 17:29
  • 1392
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于析构函数
举报原因:
原因补充:

(最多只允许输入30个字)