Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707287
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: C/C++

2007-03-02 18:06:52


C++中,每个名字在使用之前必须被声明,如果在main之前没找到这个名字的声明,就会产生一个编译错误.

C++中,每个名字都有一个上下文(context),这就是的概念.

C++支持3种形式的域:
1.局部域:    
        包含在函数定义或函数块中的程序文本部分.
2.名字空间域:
        不包含在函数声明,函数定义,类定义中的程序文本部分.
        最外层的名字空间域是全局域
3.类域
        每个类定义都引入了一个独立的类域


全局域内的函数声明将引入全局函数,而全局域内的变量声明将引入全局对象
全局对象是一个运行时实体,它在程序的整个执行过程中都存在.它占据的存储区的生命期从程序启动开始,到程序终止时结束.

全局对象和(非inline)全局函数在一个程序中或者只有一个定义(或者有多个完全相同的定义),这称为"一次定义法则(ODR)".
inline函数在一个程序中可以被定义多次.

局部域中的变量声明引入了局部对象,有三种局部对象:自动对象,寄存器对象,局部静态对象.
自动对象生命期从被调用时开始,到函数结束为止.
寄存器对象是一种自动对象,支持对数据的快速存取.
局部静态对象在程序的整个执行期一直存在.

除全局对象,局部对象之外的第3种对象--动态分配对象, 允许程序员完全控制它的生命期.

using namespace <已定义的名字空间> 可以无需名字空间修饰符而直接访问名字空间内的名字


阅读(646) | 评论(0) | 转发(0) |
0

上一篇:函数指针的使用

下一篇:模板小结

给主人留下些什么吧!~~