相关推荐
Effective C++记录(精简版)
1、尽可能延后变量定义式的出现,尽可能在初始化的时候给初值实参,这样做可增加程序的清晰度并改善程序效率。1、绝对不要重新定义继承而来的non-virtual函数。会打破public继承时is a的关系。1、绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定(使用指针类型函数默认参数),而virtual函数——你唯一应该覆写的东西却是动态绑定。
《Effective C++》学习笔记——条款18
《Effective C++》学习笔记——条款18:让接口容易被正确使用,不易被误用
《Effective C++》 读书笔记(详细总结55条款)上篇
下面从四个方面来说 (1) C++ 以 C 为基础,很多语句语法都没有改变,只是进行了扩展,C++ 解决问题的时候,可以理解为 C 的高效解法 (2) 面向对象,有构造函数,析构函数,继承、封装、多态、虚函数动态绑定,这是不同于C 语言的部分 (3) 泛型编程、可以理解为代码的模型,但是代码本身并不占用内存空间,只有在实例化的时候,才分配内存,所以可以提高代码复用性
Effective C++学习笔记 第四弹 18-28
条款18:努力让接口完满(complete)且最小化 即对于clients可能希望完成的任何合理工作,class都应该提供一个合理的方法来完成 最小化就是尽可能的让函数个数最少 条款19:区分member functions,non-member functions和fri
Effective C++学习笔记(Part Four:Item 18-25)
第4部分:设计与申明(Designs and Declarations) 本部分主要讲述了类的设计原则以及设计规则,以及成员命令、成员函数设计时,应该注意的一些地方;个人感觉这是设计好一个类必不可少的。
Effective C++ 学习笔记(18)
如果不想使用隐式生成的函数就要显式地禁止它 假设想写一个类模板 Array,它所生成的类除了可以进行上下限检查外,其它行为和C++标准数组一样。设计中面临的一个问题是怎么禁止掉Array 对象之间的赋值操作,因为对标准C++数组来说赋值是不合法的: double values1[10];double values2[10];values1 = values2; // 错误! ...
Effective C++ 学习笔记 条款18 让接口容易被正确使用,不易被误用
Boost的shared_ptr是原始指针的两倍大,以动态分配内存作为簿记用途和“删除器之专属数据”,以virtual形式调用删除器(假如是一个指向派生类的基类指针,也能正确删除所指对象),并在多线程程序修改引用计数时蒙受线程同步化(thread synchronization)的额外开销(只要程序员定义一个预处理器符号就可以关闭多线程支持)。tr1::shared_ptr没有这个问题,因为它缺省的删除器是来自“tr1::shared_ptr诞生所在的那个DLL”的delete。限制上例类型的值是合理的。
[C++ 学习笔记 11] Effective C++ 条款 18-25
第四章 设计与声明 18、让接口容易被正确使用,不易被误用 ...
Effective C++学习笔记 第三弹 11-18
条款11:如果class内动态配置有内存,请为此class声明一个copy constructor和一个assignment运算符 1、默认operator=函数 当自定的operator= 不存在时,C++产生一个默认的assignment运算符,该默认函数对对象
《Effective C++》学习笔记(条款18:让接口容易被正确使用,不易被误用)
最近开始看《Effective C++》,为了方便以后回顾,特意做了笔记。若本人对书中的知识点理解有误的话,望请指正!!! 设计一个好接口必须遵守三条规则: 必须考虑用户可能做出什么样的错误 要把接口设计得一致 不要要求用户记得必须做某事 必须考虑用户可能做出什么样的错误: 欲开发一个”容易被正确使用,不容易被误用“的接口,首先必须考虑用户可能做出什么样的错误。假设你为一个用来表现日期的类设计构造函数: class Date{ public: Date(int month, int day, i
《Effective C++》学习笔记条款18 让接口容易被正确使用,不易被误用
让接口容易被正确使用,不易被误用
Effective c++学习笔记条款18:让接口容易被正确使用,不易被误用
Make interfaces easy to use correctly and hard to use incorrectly 接口,顾名思义,供别人使用的一些方法。function 接口,class接口,template 接口。。。。每一
《Effective Modern C++》学习笔记 - Item 18: 使用 std::unique_ptr 管理独占性资源(附MSVC源码解析)
std::unique_ptr 占用空间与裸指针相同,大多数操作(包括解引用)的方法也相同。它表现的是 独占性拥有(exclusive ownership) 的语义,这意味着它不能被拷贝,是 move-only 类型;当其自身被销毁时,总会销毁其拥有的资源。而对象的销毁在作用域结束(即右大括号出现)时自动通过调用析构函数进行,此时 std::unique_ptr 默认对内部的裸指针进行 delete,因此你无需像裸指针一样操心什么时候要手动销毁。 (注:笔者尽己所能对MSVC的 std::unique_p.
【C++】万字详解Effective C++
本文为前段时间读《Effective C++》(侯捷译)时做的个人笔记。
More Effective C++学习笔记
条款1 指针与引用的区别 条款2 尽量使用C++风格的类型转换 条款3 不要对数组使用多态 条款4 避免无用的缺省构造函数 条款5 谨慎定义类型转换函数 条款6 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 条款7 不要重载“&&”,“||”, 或“,” 条款8 理解各种不同含义的new和delete 条款9 使用析构函数防止资源泄漏 条款10 在构造函数中防止资源泄漏 条款11 禁止异常信息(exceptions)传递到析构函数外 条款12 理解“抛出一个异常”与“
Effective C++ 总结
当变量定义出现时,程序需要承受其构造成本;当变量离开其作用域时,程序需要承受其析构成本。因此,避免不必要的变量定义,以及延后变量定义式直到你确实需要它。// 效率低// 效率高Widget w;i < n;++i) {w = 取决于 i 的某个值;...这种做法产生的开销:1 个构造函数 + 1 个析构函数 + n 个赋值操作i < n;++i) {Widget w(取决于 i 的某个值);...这种做法产生的开销:n 个构造函数 + n 个析构函数。
1098


&spm=1001.2101.3001.11974&articleId=3923409&d=1&t=3&u=72fc6655e7de4e53a86080240ddeb497)

被折叠的 条评论
为什么被折叠?



