C++ Primer Plus 第6版 学习笔记-chapter9

本部分罗列了本章的难点或注意点,以便复习巩固或者回忆,关注私聊我可以免费领取pdf版C++ Primer Plus 第6版。

  1. 头文件常包括的内容。函数原型、使用#define或const定义的符号常量、结构声明、类声明、模板声明、内联函数。

  2. 同一个文本中只能将用一个头文件包含一次

  3. auto以前用于默认为自动的变量,C++11中不再合法。

  4. C++11中register的作用也失去了,只是显示地指出变量是自动的。

  5. 链接性用于描述文件间的共享

  6. 自动存储 没有链接性 函数中声明的函数参数和变量 栈 创建时值是不确定的 P310

  7. 静态存储 外部链接性(全局变量)、内部链接性(static修饰的全局变量)、无链接性(static修饰的局部变量) 固定的内存块 创建时用0填充 整个函数执行期间都存在

  8. 静态变量的初始化 分为静态初始化(零初始化和常量表达式{能使用sizeof}初始化)和动态初始化(在编译后初始化,比如要调用某个函数来计算)

  9. c++11新增关键字constexpr

  10. 变量声明:定义声明(分配内存空间) 引用声明(不分配内存空间)

  11. 作用域解析运算符(::)放在变量名前面,该运算符表示用变量的全局版本。

  12. 同名时,静态变量能隐藏常规外部变量

  13. 静态变量只会进行一次初始化

  14. 说明符 auto(C++不再是) register static extern thread_local(C++11新增) mutable

  15. c-v限定符 const volatile

  16. volatile表示内存单元的值可能发生变化 当编译器读取某个值两次,会优化操作,将值缓存到寄存器中,导致读到的值不变。volatile使编译器不做这种优化。

  17. mutable 能让const结构或类的某个成员可以被修改

    struct data
    {
        char name[30];
        mutable int accesses;
    }
    ​
    const data da1 = {"as",12};
    da1.accesses++;  //valid
    ​
  18. 在c++(不是c)中,const对默认存储类型也有影响,const全局变量的链接性是内部的。

  19. 函数也具有链接性

  20. 语言链接性

    extern “C” void spiff(int);
    extern "C++" void spiff(int);
  21. new初始化 可以用(){}

  22. new还可以作为定位new运算符能够指定要使用的位置

    struct chaff{
        char dross[20];
        int slag;
    }
    char buffer1[50];
    char buffer2[500];
    int main(){
        chaff *p1,*p2;
        int *p3,*p4;
        p1 = new chaff;
        p3 = new int[20];
        p2 = new (buffer1) chaff;
        p4 = new (buffer2) int[20];
    }
  23. 利用定位new运算符有可能不需要delete

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值