首先提一句,C++默默编写的函数都是 public 且 inline 的 default 构造函数 如果你没有声明任何构造函数,则编译器会为你声...

首先提一句,C++默默编写的函数都是 public 且 inline 的 default 构造函数 如果你没有声明任何构造函数,则编译器会为你声...
如果我们不想要编译器自动生成的 copy constructor 或者其他一些函数应该怎么办呢? 方法一 将 copy 构造函数或 copy a...
析构函数往往身肩销毁资源等一些十分重要的责任,但如果析构函数在销毁资源的过程中吐出了一个异常,它就没有办法继续正常地执行它的任务,会造成资源泄漏...
有时候我们会写出这样考虑不够周全的代码 实际调用这句时,如果是 会有三个动作发生 调用new 构造shared_ptr 调用priority()...
pass-by-reference-to-const 的好处: 避免拷贝构造函数的开销 避免 slicing 问题,因为引用类似于指针,可以实现...
将数据成员声明为private的好处有 对用户来说,更一致的访问方式:通过函数访问,而不需要再记忆访问数据成员时需不需要加括号 更精细的权限控制...
面向对象的核心之一是:封装性越强越好。而封装的含义是:越少东西被看到,封装性越好。因为当我们改动代码的时候,对其余功能的影响就越小,我们就可以更...
尽管隐式类型转换不是一个好东西,但是有时我们又不得不需要它,比如在做数学计算的时候,必须允许不同类型的数字进行混合运算,比如我们有一个小数类 如...
其实这条 Term 的重点不在于抛出异常,而在于怎么实现一个高效的swap,不抛出异常的要求是相对比较好保证的 标准库中swap的实现大概是这样...
利用成员初值列初始化成员变量 对于用户自定义类型来说,成员初值列的初始化效率比赋值操作要高,对于内置类型而言则差别不大对于用户自定义类型,如果成...
专题公告
快速浏览 Effective C++ 内容,方便进行复习或回顾