C++构造函数与析构函数

构造函数:

构造函数与普通成员函数一样,可以在类中直接定义,也可在类中说明原型,在类外定义。

注意:

(1)构造函数的名字与类名相同。

(2)构造函数无返回值,连void都不能有。

(3)构造函数只能在创建对象时由系统调用。

(4)若定义的类要说明该类的对象时,构造函数必须是公有的,若定义的类仅用于派生其他类时,则可将构造函数定义为保护的。

(5)构造函数可以不带参数,也可以带若干个参数,也可以制定参数的默认值。当定义多个构造函数时,必须满足函数重载规则,即所带的参数个数或参数类型不同。

初始化表:

构造函数也可以通过初始化表初始化数据成员,初始化表位于参数表和函数体之间,以“:”开头,由多个以逗号分隔的初始化项构成。

注意:

(1)常值数据成员,对象成员,从基类继承来的数据成员等特殊成员的初始化必须采用初始化表。

(2)带有初始化表的构造函数被调用时,先执行初始化表,后执行函数体。

(3)每个类必须至少有一个构造函数,没有构造函数,就不能创建任何对象。

(4)只要一个类定义了一个构造函数,系统就不再提供默认的构造函数。这样,当为类定义了一个带参数的构造函数时,若还需要使用无参构造函数,则必须自己定义。

析构函数:

用来完成对象被撤销前的清理工作。

注意:

(1)析构函数名必须与类名相同,并在其前面加上字符“~”,以便与构造函数区别。

(2)析构函数没有返回值,函数名前也不能用关键字void。

(3)没有参数,即析构函数是唯一的,无法重载。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值