随笔分类 -  Effective C++

摘要:了解隐式接口和编译期多态 编译期多态和运行期多态 运行期多态就好比是virtual函数再运行的时候才确定该virtual函数该被绑定为哪个函数,运行的时候才确定函数类型。 编译期多态就好比是泛型编程和模板编程中,在编译的时候才确定哪个函数该被调用,根据函数的类型去确定。 显示接口和隐式接口 显示接口 阅读全文
posted @ 2016-08-07 10:04 Kobe10 阅读(352) 评论(0) 推荐(0)
摘要:确定你的public继承塑模出is-a关系 public继承和is-a的之间的等价关系很简单。例如动物和鸟,鸟一定是动物,而动物不一定是鸟。 public继承意味着is-a。适用于base classes身上的每一件事情也是一定适用于派生类身上的,因为每一个派生类对象也都是一个base classe 阅读全文
posted @ 2016-08-07 08:05 Kobe10 阅读(316) 评论(0) 推荐(0)
摘要:尽可能的延后变量定义式出现的时间 产生问题:定义一个变量,其含有构造函数和析构函数。那么当代码运行到它的时候,就必须会产生构造成本和析构成本,如果这个变量最终未使用,那么就是浪费了资源空间,所以应该尽可能的延后变量定义式的时间 解决方法:不只是应该延后变量的定义,知道非得使用该变量的前一刻为止,甚至 阅读全文
posted @ 2016-08-06 10:42 Kobe10 阅读(188) 评论(0) 推荐(0)
摘要:让接口容易被正确使用,不容易被误用 好的接口容易被正确的使用,不容易被误用。你应该在你的所有接口中努力达到这些性质。 促进正确使用的办法包括接口的一致性,以及与内置类型的行为兼容 阻止误用的办法包括建立新类型,限制类型上的操作,束缚对象值,消除客户的资源管理责任 设计class犹如设计type 宁以 阅读全文
posted @ 2016-08-05 15:32 Kobe10 阅读(182) 评论(0) 推荐(0)
摘要:以对象管理资源 问题产生:当一个类的一个函数返回的是一个指针,指向这个类的对象。然后有这么个函数 void f(){ my * p=createmy();返回对象的指针 ... delete p; } 因为...这个东西可能不能够删除那个指针,资源就没有办法释放了。..可能发生过早的return语句 阅读全文
posted @ 2016-08-05 09:12 Kobe10 阅读(304) 评论(0) 推荐(0)
摘要:了解C++默默编写并且调用哪些函数 一个空类,C++处理过后会默认加上一个复制构造函数,复制赋值操作符和析构函数,但是只有当这些函数被需要被调用的时候才会被C++创建,平时的话一个空类不被使用也就是一个空类了。 编译器生成的copy构造函数用法 默认的这两个函数仅仅是将对象的成员进行简单赋值。 这就 阅读全文
posted @ 2016-08-05 07:53 Kobe10 阅读(296) 评论(0) 推荐(0)
摘要:尽量以const,enum,inline替换#define 用宏定义一个常量的时候,可能会发生一些错误。当发生错误的时候你可能并不能知道这个错误具体出自哪里,因为宏定义的变量可能没有进入记号表中(symbol table)。还有就是宏定义的东西可能会盲目的置换代码中的变量(直接全部置换过去,括号可能 阅读全文
posted @ 2016-08-04 10:29 Kobe10 阅读(130) 评论(0) 推荐(0)