美文网首页
第十章 名字控制

第十章 名字控制

作者: 意不适 | 来源:发表于2017-03-20 13:31 被阅读0次

    简介:static如何控制存储和可见性;通过C++的名字空间特征来控制访问名字的改进方法。;使用已经采用C语言编写和编译过的函数。

    10.1 来自C语言中的静态元素

    static含义:

    1. 静态数据区

    2. 局部编译

    在C++中,全局静态对象的构造函数是在main()之前调用的,所以现在有了一个在进入main()之前执行一段代码的简单的、可移植的方法,并且可以在退出main()之后用析构函数执行代码。

    全局变量和普通函数都有外部连接,被声明为static的对象或函数的名字对翻译单元都有内部连接。连接只引用那些连接/装载期间有地址的成员。因此类声明和局部变量并不连接。

    10.2 名字空间

    namespace唯一的目的是产生一个新的名字空间。

    1. namespace只能在全局范围内定义,但它们之间可以相互嵌套
    2. namespace定义的结尾,右花括号后不必有分号
    3. 一个namespace可以在多个头文件中用一个标识符来定义,就好像重复定义一个类一样
    4. 一个namespace可以用另一个名字来作它的别名
    5. 不能像创建一个类一样创建一个名字空间的实例

    在一个名字空间中引用一个名字有三种方法:

    1. 使用作用域运算符
    2. 使用using指令把所有名字引入
    3. 使用using指令一次性引用名字

    10.3 C++中的静态成员

    类的静态成员拥有一块地拿督的存储区,而不管创建了多少个该类的对象,所有的这些对象的静态数据成员都共享这一静态存储空间。

    静态成员函数不能访问一般的数据成员,而只能访问静态数据成员,也只能调用其他的静态成员函数。它没有传递this所需的额外开销。

    10.4 静态初始化的相依性

    两种技术 ?s

    10.5 替代连接说明

    通过重载extern关键字实现:extern后跟一个字符串来指定想声明的函数的连接类型。

    相关文章

      网友评论

          本文标题:第十章 名字控制

          本文链接:https://www.haomeiwen.com/subject/mjzenttx.html