![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective c++
赵找一
这个作者很懒,什么都没留下…
展开
-
条款34:区分接口继承和实现继承
目录 接口继承和实现继承不同。 纯虚函数 pure virtual 简朴的虚函数/非纯虚函数 inpure virtual 非虚函数 non-virtual 接口继承和实现继承不同。 在public继承之下,derived classed 总是继承base class的接口。 纯虚函数 pure virtual virtual void draw() const...原创 2020-03-29 09:54:33 · 164 阅读 · 0 评论 -
条款26:尽可能延后变量定义式的出现时间
开销1: 考虑以下流程:也就是入参为非法值的时候,仍然执行了没有必要的1,增加了构造和析开销。 fun(int* p ){ string tmp; //1 if(p == null){ return null; //2 } ... return tmp; } 更好的方式是:以下情况出现不合适的入参,直接退出,就不会额外增加//1的构造和析构开销。 fun(i...原创 2020-03-28 21:55:41 · 114 阅读 · 0 评论 -
条款25:考虑写一个不抛一场的swap函数
template <typename T> void swap(T& a, T& b) { T tmp(a); a = b; b = tmp; }原创 2020-03-28 21:30:59 · 81 阅读 · 0 评论 -
effective C++ 条款23 宁以non-member,non-friend替换member函数
选择non-member,non-friend,替换member函数 从封装进行考虑。如果某些东西被封装,它就不再可见。越多东西被封装,越少人可以看见它。而越少人看到它,我们就有越大的弹性去改变它。 越多东西被封装,我们改变那些东西的能力就越大。这就是我们首先推崇封装的原因:它使我们能够改变事物而只影响有限客户。 导致较大封装性的是non-member,non-friend函数,因此,...原创 2020-03-28 21:25:46 · 95 阅读 · 0 评论