懒人梦语

智 明

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  27篇文章 :: 3篇收藏:: 39篇评论:: 0个Trackbacks

文章

收藏

相册

blogs

myself

others

programming

书店

存档


正在读取评论……


CPP中强调初始化和清除的动作,这样会减少在C语言中因为没有正确初始化和清除所造成的错误。在CPP中这两种工作时有特定的函数完成的,即构造函数和析构函数。

这两种函数有着特殊的名字,即和类名或结构名相同例如:

class X {

   int i,j;

public:

   X(int ii,int jj); //构造函数

   ~X(); //析构函数

};

在类的对象定义时构造函数会被自动调用进行初始化动作,在对象离开其作用域时析构函数会自动被调用进行清除动作。在JAVA中没有析构函数的概念,清除动作时由垃圾回收器自动完成的,这也是CPP与JAVA的不同之处。

如果程序员没有为类或结构定义构造函数,编译器会自动产生一个默认的构造函数,这个默认的就是没有参数的构造函数。但只要程序员定义了一个构造函数,编译器便不会再产生任何的额外的构造函数了。例如Y类的定义如下:

class Y {

   float f;

   int i;

   Y(int a);

};

初始化一个数组:

Y y2[2]={Y(5)};

或者定义一个对象:

Y y1;

这个时候编译器会报告找不到默认的构造函数。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=461763


[点击此处收藏本文]  发表于2005年07月11日 10:57 AM




正在读取评论……

发表评论

大名:
网址:
验证码
评论