第三节

生命周期、初始化、const

1.面向对象得几点编码规范

1>循环里面要少用判断
2>类与类之间的常用关系:组合(一部分),继承(一种)。
3>尽量将成员变量的初始化卸载初始化列表之中。
4>初始化列表中只是规定了初始化的方式,没用规定初始化的顺序,初始化的顺序跟定义的顺序有关.

2.在有关对象生命周期的几点问题。

1> 对象按引用来进行传递。
2> 函数返回对象的时候尽量返回临时对象,不要先定义再返回。
3> 调用返回对象的函数时,应该以初始化的方式调用,不要以赋值的方式调用。
4> Test t4 =Test(11,11)等价于Test t4(11,11).
5> Test(val)和(Test)val没有区别。
6>t2=60 和t2=(Test)60一样,一个隐式生成临时对象,一个显式生成临时对象。
7> 不能让指针指向临时对象,临时对象会被析构。可以引用临时对象,即给临时对象取别名,临时对象的生命周期就会变得和引用对象一样。

3.初始化的几点问题。

1> new数组对象,只能进行默认的初始化方式.
2>对于内置类型new int2初始化为0,new int[2]初始化为随机值。
对于自定义类型,这两种没有区别。

4.c++其实把一切类型都当作对象来处理。

5.const关键字

在C语言中:
1> const定义的变量,可以初始化,也可以不进行初始化。
2>const修饰的变量不能作为左值。
3>不能当常量来使用,可以认为式常变量。
4>常变量的编译方式和常量一模一样。
在c++中:
1> const定义的变量,必须进行初始化。
2>可以当作常量来使用。
3>常量const的编译方式,在编译时期拿常量的值直接将常量的名字替换掉。
4> 常量也会退化成常变量。

6.在出现const的代码段中,一般出现问题主要原因有:

1> 作为左值了。
2> 把const的地址或者引用泄漏出去了。

7.const的几个转换公式。

1>const int* => int* err
2>int * => const int* ok
3>int ** => const int** err
4>const int** => int** err
5>int** => int const err
6>intconst => int** err
7>const int** => int const err

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值