《Thinking in C++, 2nd Edition》笔记-第六章(Initialization & clean up)

在C++中,初始化和清理的概念是简化类库使用的关键,并可以减少那些由于用户忘记这些操作而引起的许多细微错误。

用构造函数保证初始化,析构函数保证清除

如果一个类有构造函数,编译器在创建对象时就自动调用这一函数。对用户来说,是否调用构造函数并不是可选的,它是由编译器在对象定义时完成的。构造函数的名字?最容易也最合乎逻辑的是:构造函数的名字与类的名字一样。这使得这样的函数在初始化时自动被调用。

构造函数和析构函数是两个非常特殊的函数:它们没有返回值。这与返回值为void的函数显然不同。后者虽然也不返回任何值,但我们还可以让它做点别的。而构造函数和析构函数则不允许。在程序中创建和清理一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些函数以确保它们被执行。如果它们有返回值,要么编译器必须知道如何处理返回值,要么就只能由用户自己来显式地调用构造函数与析构函数,这样一来,安全性就被破坏了。

析构函数的语法与构造函数一样,用类的名字作函数名。然而析构函数前面加上一个~,以和构造函数区别。当对象超出它的定义范围时,编译器就会自动调用析构函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值