
More Effective C++
举头望太阳
从事嵌入式软件开发,擅长c语言,linux高级编程,C++/Qt mysql有一定的开发经验
展开
-
More Effective C++ 学习笔记(5)
技术条款25:将constructor和non-member function虚化将函数虚化带来的好处是可以适应变化、可以通过基类指针调用不同子类的重载函数【大部分都会应用的技术】条款26:限制某个class所能产生的对象的数量 0~1个对象: 方法:1.将构造函数声明为private,或者使用单例class Printer{ private: Printer(); ~Printer(); public: //原创 2020-12-31 17:10:35 · 209 阅读 · 1 评论 -
More Effective C++ 学习笔记(4)
效率一些漠视的简单规则:循环可以手动展开 乘法可以用以为运算代替 减少非必要的对象产生和销毁条款16:谨记8-2法则一个程序80%的资源用在20%的代码身上,软件整体性能几乎总是由构成要素的一小部分决定条款17:考虑使用缓释评估核心点:拖延战术在你真正需要之前,不必着急为某物做一个副本应用场景:引用计数string s1 = "hello";string s2 = s1; //复制运算符如果直接做副本拷贝操作则称之为急式评估原创 2020-12-29 22:10:51 · 220 阅读 · 3 评论 -
More Effective C++ 学习笔记(3)
异常为什么要使用exceptions?exceptions无法被忽略,如果一个函数利用设定状态变量或是利用返回错误码的方式发出异常信号,无法保证此函数调用者会检查错误码,于是程序就会持续下去,从而远离错误点,但是有了exceptions,如果没有被捕获到,则程序会立刻终止。条款9:利用destructors避免内存泄漏即避免使用普通指针而去转向智能指针,或者说将资源封装到对象内,通常便可在异常出现时避免泄漏资源。如下示例:GUI应用软件中的某个函数,必须产生一个窗口显示某些信息:原创 2020-12-27 21:03:47 · 447 阅读 · 0 评论 -
More Effective C++ 学习笔记(2)
操作符主旨:讨论“重载操作符”被调用的时机、方法、它们的行为,应如何与其它操作符产生关系,以及如何获取“重载操作符”的控制权条款5:对定制的“类型转换函数”保持警觉故名思意,就是在自己提供的类上编写某些函数以便为了编译器拿来作为隐式类型转换用时一定要多加注意,最好不要做这样的操作两种函数可以做到上述点:单自变量constructors 核心点:...原创 2020-12-27 16:17:43 · 260 阅读 · 0 评论 -
More Effective C++ 学习笔记(1)
基础议题检索:pointers、references、casts(类型转换)、arrays(数组)、constructors(构造函数)条款1:仔细区别pointers和referencesreferences(*)和pointers(->)的差异?没有 null references 【也就是一个引用必须总代表一个对象】//示例:使用引用指向空指针【非法操作】char* pc = 0; //空指针 char& rc = *pc; //引用代表...原创 2020-12-24 09:10:56 · 233 阅读 · 0 评论