aihot  2020-11-12 09:23:24  OpenCV |   查看评论   
将某些东西声明为const可帮助编译器侦测出错误用法。const可被施加于任何作用哉内的对象、函数参数、函数返回类型、成员函数本体。
  • 编译器强制实施bitwise constness,但你编写程序时应该使用“概念上的常量性”。
  • 当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可以避免代码重复。
  • 条款04:确定对象被使用前已先被初始化

    类的构造函数的次序是先执行构造函数初始化列表,初始化所有成员变量,然后再执行构造函数体,构造函数体内的成员赋值已经不属于初始化的范畴,成员都是用拷贝赋值。

    如果类没有初始化列表,则类会先执行默认构造函数,构造出所有成员变量后,再执行函数体内的拷贝赋值。

    C++类的成员初始化是有着明显的次序的,一般是基类的成员先初始化,然后派生类的成员按定义的顺序初始化。所以类的构造函数初始化列表上的初始化顺序跟类真实的成员初始化顺序是没有关系的。

    “不同编译单元内定义之non-local static对象”

    static对象,其寿命从被构造出来直到程序结束为止。

    函数内的static对象称为local static对象(因为它们对函数而言是local),其他static对象称为non-local static对象。程序结束时static对象会被自动销毁,也就是它们的析构函数会在main()结束时被自动调用。

     

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自Effecvtive C++笔记:让自己习惯C++

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]