
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 · 199 阅读 · 0 评论 -
条款26:尽可能延后变量定义式的出现时间
开销1:考虑以下流程:也就是入参为非法值的时候,仍然执行了没有必要的1,增加了构造和析开销。fun(int* p ){string tmp; //1if(p == null){ return null; //2}...return tmp;}更好的方式是:以下情况出现不合适的入参,直接退出,就不会额外增加//1的构造和析构开销。fun(i...原创 2020-03-28 21:55:41 · 156 阅读 · 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 · 119 阅读 · 0 评论 -
effective C++ 条款23 宁以non-member,non-friend替换member函数
选择non-member,non-friend,替换member函数从封装进行考虑。如果某些东西被封装,它就不再可见。越多东西被封装,越少人可以看见它。而越少人看到它,我们就有越大的弹性去改变它。越多东西被封装,我们改变那些东西的能力就越大。这就是我们首先推崇封装的原因:它使我们能够改变事物而只影响有限客户。导致较大封装性的是non-member,non-friend函数,因此,...原创 2020-03-28 21:25:46 · 123 阅读 · 0 评论