随笔分类 -  【读书笔记】More Effective C++

摘要:条款二十五:虚化constructor和non-member function 虚化constructor是指根据传入的参数构造出不同的对象:利用一个virtual member function来完成 1 //基类 2 class Base{ 3 public: 4 virtual Base* c 阅读全文
posted @ 2022-03-12 19:41 axingzheng 阅读(22) 评论(0) 推荐(0) 编辑
摘要:条款三十二:在未来时态下发展程序 提供完整的class,例如为每个类处理copy construction动作 合理设计接口,例如禁止不希望发生的动作 泛化代码 条款三十三:将非尾端类设计为抽象类 如条款名字。 条款三十四:如何在同一个程序中结合C++和C 关于函数的命名重整技术、static类型对 阅读全文
posted @ 2022-03-11 16:36 axingzheng 阅读(21) 评论(0) 推荐(0) 编辑
摘要:条款十六:80-20法则 20%的代码占用了80%的执行时间、内存等等,因此需要化大部分时间编写 条款十七:缓式评估 利用 区分读写、生成表达式等方式避免立刻计算 条款十八:分期摊还预期的计算成本 超急评估:例如某些容器总是以二倍当前容量扩展。 某些运算的结果不总是需要时利用缓式评估可以改善效率,而 阅读全文
posted @ 2022-03-11 16:07 axingzheng 阅读(23) 评论(0) 推荐(0) 编辑
摘要:条款九:利用deconstructor避免资源泄露 将资源封装在对象中(如指针),利用对象离开作用域会自动析构的原理将资源释放,阻止资源的泄露。 条款十:在constructor组织资源泄露 C++只会析构已经构造完成的对象,如果构造过程中出现exceptions,则不会调用析构函数可能出现资源的泄 阅读全文
posted @ 2022-03-10 21:27 axingzheng 阅读(20) 评论(0) 推荐(0) 编辑
摘要:条款五:对定制的类型转换函数保持警觉 两类可以由编译器完成类型转换的函数:单变量constructor和隐式类型转换操作符,其中隐式类型转换函数 1 class Rational{ 2 public: 3 Rational(int numerator = 0, int denominaion = 1 阅读全文
posted @ 2022-03-10 16:31 axingzheng 阅读(28) 评论(0) 推荐(0) 编辑
摘要:条款一:区别pointers和references 指针:可以更改指向的对象,不需要初始化,需要检测合法性(是否是NULL) 引用:不能更改指向对象,需要一个对象来初始化,实现某些操作符, 如 operator [] 条款二:C++转型符 C++相比C增加了四类转型操作符 static_cast / 阅读全文
posted @ 2022-03-09 21:30 axingzheng 阅读(19) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示