C++学习笔记:类的构造函数

构造函数:

1.构造函数的名字必须与类名同名,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理。

2.它不具有任何类型,不返回任何值。

3.赋值语句是写在构造函数函数体中的,只有在调用构造函数时才执行这些赋值语句,对当前的对象中的数据成员赋值。

4.构造函数可以在类之外定义的两个条件:在类public中声明这个构造函数;在类外定义时,要加上类名和域限定符“::”

有关构造函数的使用,有以下说明: 

1.在类对象进入其作用域时调用构造函数。

2.构造函数没有返回值,因此也不需要在定义构造函数时声明类型,这是它和一般函数的一个重要的不同之点。

3.构造函数不需用户调用,也不能被用户调用。

4.在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。但是一般不提倡在构造函数中加入与初始化无关的内容,以保持程序的清晰。

5.如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。 

构造函数的一般格式为:

 声明构造函数:   

        构造函数名(类型1  形参1, 类型2  形参2, …)

由于用户是不能调用构造函数的,因此无法采用常规的调用函数的方法给出实参。实参是在创建对象时给出的。

创建对象的一般格式为:

        类名  对象名(实参1, 实参2, …);

class Box
{
   public :
   Box(int,int,int);
   private :
   int height;
   int width;
   int length;
};
//声明带参数的构造函数//声明计算体积的函数
Box::Box(int h,int w,int len) //在类外定义带参数的构造函数
{
   height=h;
   width=w;
   length=len;
}

构造函数的重载:

定义:在一个类中可以定义多个构造函数,以便提供不同的初始化的方法,供用户选用。这些构造函数具有相同的名字,而参数的个数或参数的类型不相同。

  1. 调用构造函数时不必给出实参的构造函数,称为默认构造函数(default constructor)。显然,无参的构造函数属于默认构造函数。一个类只能有一个默认构造函数。
  2. 如果在建立对象时选用的是无参构造函数,应注意正确书写定义对象的语句。
  3. 尽管在一个类中可以包含多个构造函数,但是对于每一个对象来说,建立对象时只执行其中一个构造函数,并非每个构造函数都被执行。

关于构造函数默认值的几点说明:

  1. 应该在声明构造函数时指定默认值,而不能只在定义构造函数时指定默认值。
  2. 如果构造函数的全部参数都指定了默认值,则在定义对象时可以给一个或几个实参,也可以不给出实参。
  3. 在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值