Effective C++
princeteng
这个作者很懒,什么都没留下…
展开
-
effective c++:条款11:在operator=中处理自我赋值;条款12:复制对象时勿忘其每一个成分
1.何为自我赋值会调用operator=,如果自己没写,编译器生成默认的。上述代码在进行自我赋值的时候,先delete掉了原来的,然后new的时候肯定失败,因为原来的被delete掉了。可以先进行证同测试,然后再new。不过此时仍然存在异常安全问题,如果new失败了,pb将指向一块被删除的区域。2.copy and swap参考链接:Copy-and-swap idiom详解和实现...原创 2019-11-27 11:13:55 · 116 阅读 · 0 评论 -
effective c++:条款09:绝不在构造和析构过程中调用虚函数;条款10:令operator=返回一个reference to *this
1.构造函数与析构函数中的虚函数不是虚函数在构造派生类对象时,首先构建基类对象,在执行基类的构造函数时,如果构造函数中有虚函数且是多态的话就会调用派生类中相应的虚函数,但派生类对象还没被初始化,调用就会出错。所以构造函数中的虚函数不能是多态。但实际上,在构建派生类中的基类对象时,对象的类型是base class而不是derived class,不只是虚函数会被编译器解析到base class...原创 2019-11-27 09:15:10 · 92 阅读 · 0 评论 -
effective c++:条款05:了解C++默默编写并调用哪些函数
1.会默认生成的函数需要这些函数的时候编译器才会默认生成这些函数,不需要(代码中没有相关操作)则编译器不生成相应的函数。编译器默认生成的析构函数不是虚函数,除非基类中的析构函数时虚函数。2.copy constructorclass NamedObject{public: NamedObject(const char* name, const int& value) ...原创 2019-11-26 21:40:28 · 153 阅读 · 0 评论 -
effective c++:条款03:尽可能使用const
1. const与指针、迭代器2. const成员函数2.1 const与non-const重载#include <iostream>#include <string>using namespace std;class CTextBook{public: CTextBook(string s) : text(s) {}; ~CTextBoo...原创 2019-11-26 18:25:26 · 90 阅读 · 0 评论