C++面向对象复习(一)——构造函数

构造函数

在C++的类中,系统分配内存时,只会给数据分配内存,儿函数代码,和其他的字符均不分配。

类中的数据成员是不许在声明类的时候进行初始化的。如果类中的所有成员都是公用的,则可以在定义对象的时候进行数据成员的初始化。

C++提供了构造函数来进行对象的初始化。

构造函数特点:

1构造函数是特殊的成员函数,不需要用户来进行调用,而是在建立类时自动执行

2构造函数的名字必须与类名字相同,它不具有任何类型,不能有返回值。

3类外定义构造函数时候要加上类名和域限定符::

4构造函数的函数体不仅可以对数据成员赋初值而且可以包含其他语句,构造函数一般声明为public

5如果用户不进行构造函数的定义,,C++系统会自动生成一个构造函数,只是函数体为空,不进行操作而已。

6、带参数的构造函数

       不带参数的构造函数进行的初始化只能是函数内定义的一组,用户不能够自己定义,C++中提供了带参数的构造函数,用来让定义类的同时进行多样的数据初始化 。

构造函数定义时候模式:构造函数名(类型1 形参1,类型2形参2…..)

对于定义了带参数的构造函数的类时:类名(实参1 ,实参2。。。)

7、Box::(int h,int w,int len):height(h),width(w),lenth(len){}

这是初始化对数据成员初始化的另一种方法)——参数初始化法

在函数的末尾加上一个冒号,然后列出初始化列表。由于写法的简洁性,深受喜爱

8、构造函数的重载

调用构造函数时不必给出实参的构造函数成为默认的构造函数,一个类只能有一个默认的构造函数。

例如一个类中出现了box();和box(int=10,int=10,int=10)时会报错

9、一个类中可以包含多个构造函数,但是对于每一个对象来说,只执行其中一个构造函数,不是所有构造函数都执行。

10、一般不同时使用构造函数的重载和由默认参数的构造函数

 

posted @ 2010-05-08 02:03  ActionBi  阅读(647)  评论(0编辑  收藏  举报