构造函数和析构函数

 构造函数是一种特殊的成员函数,与其他成员函数不同:
(1)构造函数的名字必须与类名同名
(2)它不具有任何类型,不返回任何值。
(3)构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。
(4)构造函数可以重载
(5)构造函数的调用:当通过一个类创建对象时,系统会自动调用类的构造函数。如果类中构造函数重载时,系统根据创建对象时传递的实参来调用类中的其中一个构
造函数。(只有创建对象时,才会调用构造函数)。

(6)构造函数体主要功能是初始化成员变量。

(7) 如果在类中没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数。


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


protected或private修饰的构函数
(1)、在类的外部创建对象时,不能调用protected或private修饰的构造函数。
(2)、当子类中的构造函数调用父类的private构造函数时会错,当子类中的构造函数调用父类中的public或protected构造函数时是对的。


析构函数
(1)、 析构函数(destructor)名字是类名的前面加一个“~”符号。没有参数,并且也不能重载。当对象的生命期结束时,会自动执行析构
函数。
(2)、 析构函数一般用于完成“清理”的工作。如果用户没有定义析构函数,C++编译系统会
自动生成一个析构函数,但它 什么操作都不进行。想让析构函数完成任何工作,都必须自定义的析构函数。


构造函数和虚构函数都不能被继承。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值