《Effective C++》 读书笔记 条款6-10

Effective C++ 6-10 Note

条款06:若不想使用编译器自动生成的函数,就明确拒绝

在老版的C++中,将不想自动生成的函数声明为private并且不定义

《Effective C++》 读书笔记 条款6-10_第1张图片

在当前版本的C++中,可以使用delete修饰符进行修饰

条款07:为多态基类声明virtual析构函数

带多态性质的基类应该声明一个虚析构函数,如果类带有任何虚函数,它就应该有一个虚析构函数

当出现基类指针或引用指向派生类对象时,如果析构函数不为虚函数,那么调用的就是静态对象的析构函数,也就是基类的析构函数,这会导致派生类的派生部分没有删除

如果类的设计目的不是作为基类使用,或不是为了具备多态性,就不应该声明virtual的使用

为了实现virtual函数,对象必须携带某些信息,主要用来在运行期决定哪一个virtual函数应该被调用。而这额外的信息是具有一定开销的。

条款08:别让异常逃离析构函数

析构函数绝对不要吐出异常,如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序<

你可能感兴趣的:(C++,c++)