C++ learning blog (2) 域与生命期

1,scope 局部域,类域,名字空间域。
2, C++的名字解析是由内往外的一个过程,所以如果局部域内出现与全局域中相同的名字,那么在局部当中将会屏蔽全局域。
3,程序中对于成员的定义一般遵循ODR,因此一般来说把成员的声明放在头文件当中;
但是要注意的是对于变量的声明,要注意加上extern,这个关键词表示这边只是声明,不进行任何的内存分配,有其他地方对这个变量进行了定义!
如果既使用了extern又对变量进行了初始化,那么编译器也会对该定义进行变量的内存分配。那么就会把以后的定义标记为错误!
在函数前面使用extern,没有什么影响,因为本身函数的声明就是隐含着应用了extern 所以加了extern只是变成显式!
4,头文件当中可以定义常变量和inline函数,但是要注意的是区别常量指针和指针常量之间的区别,定义在头文件中的只能是常量指针,即不能改变指针而不是不能改变指针所指向的对象!
5,局部对象:自动对象,寄存器对象(对于一些经常被使用的变量为了提高效率可以把它声明为寄存器变量,但是编译器并不硬性执行,而是进行选择的变化),局部静态对象(域还是局部可是生命期变成了全局!)
静态局部对象似乎为节约系统开销做了准备。不过我认为这个特性不应该被滥用。只有确实有必要让对象生命周期跨越多次调用时才应该把它声明为静态(比如统计函数被调用的次数)。否则将提高造成BUG的可能性,使“高效率”的程序成为空中楼
6,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值