懒人梦语

智 明

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

文章

收藏

相册

blogs

myself

others

programming

书店

存档


正在读取评论……


2005年07月



    摘要:刚和两个朋友打了场乒乓球。吃饭时讨论了互连网的创业和机会等等。我的角色显然是理想主义者。朋友们谈了很多他们的观点,有几点觉的是在国内颇具代表性的观点。    (全文共1611字)——点击此处阅读全文




    摘要:最近发现WEB2.0越来越热了,又一个新生的浪潮要来临了么?    (全文共1224字)——点击此处阅读全文




    摘要:昨天跟一个朋友在网上碰到,他是学财经的,刚毕业,不过接触计算机12年了。偶尔谈到互联网行业,他想都没想就说:“哦,泡沫产业”。    (全文共699字)——点击此处阅读全文




    摘要:土豆早就听说了,只是一直没去。今天有空去逛逛,发现和我想的不是一个东西    (全文共419字)——点击此处阅读全文



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;

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




在cpp中,在一个编译程序中,通常是一个cpp文件里。如果包含了多个头文件,这些头文件里的有重复的声明部分,cpp编译器会认为这是个重声明错误。

因该用预处理器指令加以检查,例如:

#ifndef HEADER_FLAG

#define HEADER_FLAG

//Type declaration here...

#endif //HEADER_FLAG