7.返回值为引用 和 8.静态对象的构造

7.返回值为引用

        函数可以返回一个引用,但注意局部对象返回后会自动销毁,如果返回对象在返回后会被摧毁,就不能返回引用,而必须以值的方式返回它,返回时将会产生一个一份拷贝,函数会把拷贝返回给调用函数。

8.静态对象的构造

        我们可以用构造函数来对那些有着static存储类型的对象进行初始化:

        static String hello("hello world");

C++编译系统确保:所有的静态对象在它们被使用之前都会被初始化。

        在同一个编译单元中出现的静态对象,它们的初始化顺序和它们在代码中出现的顺序是一致的;但在不同文件中的初始化操作顺序则是未定义的。

        我们应该避免在一个给定的头文件中初始化对象,因为它会造成每个包含该头文件的编译单元都拥有这份初始化代码。模板特性的一个副作用就是:它会增加给定程序中编译单元的个数(因为通常每个模板都会被实例化为一个单独的编译单元)。当使用模板时,我们很容易就能得到上百个编译单元的程序。对于这样的程序来说,要求同一个初始化在每个编译单元中都有冗余的运行时开销的方式会显得太昂贵了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值