
Effective C++
桃花初酒。
这个作者很懒,什么都没留下…
展开
-
Effective C++ 条款5:编译器默默编写并调用哪些函数/Effective C++ 条款6:若不想使用编译器自动生成的函数,就该明确拒绝
1.编译器默默编写并调用的函数 编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符、析构函数。default构造函数、析构函数 即默认构造函数和默认析构函数。 构造函数作用是在类实例化时为成员变量赋值; 析构函数负责在对象生命周期结束时做回收工作。 如果有特殊的构造需求,需要显式地定义一个构造函数,那么编译器将不再提供default构造函数。 编译器默认提供的析构函数不是虚函数。copy构造函数、copy assignment操原创 2020-12-07 22:58:48 · 134 阅读 · 1 评论 -
Effective C++ 条款4:确定对象被使用前已先被初始化
1.为内置型对象进行手工初始化C++基本内置类型包括算术类型和空类型。其中算术类型包括字符、整型数、布尔值和浮点数;空类型不对应具体的值,当函数不返回任何值时使用空类型作为返回类型。 复合类型是指基于其它类型定义的类型,如指针、引用和数组。初始化与赋值有本质区别:前者是直接初始化数据成员,后者则是先初始化再赋值。对于对象成员变量,其初始化的动作发生在进入构造函数之前,换句话说,初始化的优先级要高于赋值。这种区别事关底层效率,除此之外更重要的是,一些数据成员必须被初始化,比如,如果成员是con原创 2020-12-02 22:59:21 · 99 阅读 · 0 评论 -
Effective C++ 条款3:尽可能使用const
Effective C++ 条款3:尽可能使用const1.使用const的意义 由程序员自己定义一些语义约束(不应该被改动的对象),编译器会强制实施这些约束从而保证代码的严谨与正确。2.const与指针 根据const与*号的相对位置来判断该const的具体用意: 1.const位于*右边:int* const a; 表明int型指针a自身是常量,无法被改变,诸如a++/a--等对指针自身进行操作的语句即是错误的。 2.const位于*左边:int const *a;/ cons原创 2020-11-30 23:28:02 · 217 阅读 · 0 评论