Effective C++学习笔记
2012Martin
这个作者很懒,什么都没留下…
展开
-
条款13:以对象管理资源
结论1:为防止资源泄漏,请使用RAII对象(Resource Acquis原创 2014-06-02 14:58:11 · 554 阅读 · 0 评论 -
条款01:视C++为一个语言联邦
C++同时支持原创 2014-05-26 00:34:43 · 763 阅读 · 0 评论 -
条款04:确定对象被使用前已先被初始化
结论1:为内置型对象进行手工初始化,因为C++不保证初始化它wx原创 2014-05-30 01:14:18 · 695 阅读 · 0 评论 -
条款05:了解C++默默编写并调用哪些函数
结论1:编译器可以暗自为class创建default原创 2014-05-31 01:31:43 · 642 阅读 · 0 评论 -
条款29:为“异常安全”而努力是值得的
结论1:异常安全函数即使发生异常也不会泄漏资源或允许任何数据结构败坏。原创 2014-06-14 15:07:22 · 762 阅读 · 0 评论 -
条款30:透彻了解inline的里里外外
结论1:将大多数inline限制在小型、被频繁调用的函数身上。原创 2014-06-14 16:00:30 · 603 阅读 · 0 评论 -
条款32:确定你的public继承塑模出is-a关系
结论1:“public继承”意味is-a。原创 2014-06-14 23:39:45 · 452 阅读 · 0 评论 -
条款33:避免遮掩继承而来的名称
结论1:derived classes内的名称会遮掩base classes内的名称原创 2014-06-14 23:49:46 · 515 阅读 · 0 评论 -
条款31:将文件间的编译依存关系降至最低
结论1:支持“编译wydh原创 2014-06-14 19:43:32 · 513 阅读 · 0 评论 -
条款06:若不想使用编译器自动生成的函数,就该明确拒绝
结论1:为驱原创 2014-05-31 01:54:00 · 706 阅读 · 0 评论 -
条款03:尽可能使用const
结论1:将某些东西声明为const可帮助编译器侦测出错误用法。const可被原创 2014-05-28 01:26:09 · 539 阅读 · 0 评论 -
条款07:为多态基类声明virtual析构函数
结论1:polymorphic(带多态性质的)原创 2014-06-01 23:25:18 · 589 阅读 · 0 评论 -
条款09:绝不在构造和析构过程中调用virtual函数
结论1:要构造原创 2014-06-02 00:01:58 · 534 阅读 · 0 评论 -
条款08:别让异常逃离析构函数
结论1:析构函数绝对不要吐了异常。如果一个被析构函数ymf原创 2014-06-01 23:49:26 · 666 阅读 · 0 评论 -
条款34:区分接口继承和实现继承
结论1:接口继承和实现继承不同。在public继承之下,derived原创 2014-06-15 01:31:10 · 442 阅读 · 0 评论 -
条款15:在资源管理类中提供对原始资源的访问
结论1:APIs往往要求访问原始资源,所以每一个RAII class应该提供原创 2014-06-02 20:40:55 · 520 阅读 · 0 评论 -
条款20:宁以pass-by-reference-to-const替换pass-by-value
结论1:尽量以pass-by-reference-to-const替换pass-by-v原创 2014-06-07 02:22:32 · 399 阅读 · 0 评论 -
条款25:考虑写出一个不抛异常的swap函数
结论1:首先,如果s原创 2014-06-08 00:18:31 · 750 阅读 · 0 评论 -
条款14:在资源管理类中小心copying行为
结论1:复tmhj原创 2014-06-02 20:09:57 · 525 阅读 · 0 评论 -
条款16:成对使用new和delete时要采取相同形式
结论1:如果在new表达式中使用[ ],必须在相应的delete表棕原创 2014-06-02 21:03:42 · 505 阅读 · 0 评论 -
条款02:尽量以const,enum,inline替换#indefine
对于单纯常量,最好以const对象或enum替换#define。原创 2014-05-26 13:44:13 · 701 阅读 · 0 评论 -
条款10:令operator=返回一个reference to *this
结论1:令赋值操作符返回一个reference to *this原创 2014-06-02 00:46:28 · 509 阅读 · 0 评论 -
条款11:在operator=中处理“自我赋值”
结论1:确保当对象自我赋值时operator原创 2014-06-02 01:00:42 · 506 阅读 · 0 评论 -
条款17:以独立语句将newed对象置入智能指针
结论1:以独立语句将newed对象存储于(置入)t原创 2014-06-06 01:34:58 · 433 阅读 · 0 评论 -
条款18:让接口容易被正确使用,不易被误用
结论1:原创 2014-06-06 01:58:31 · 516 阅读 · 0 评论 -
条款27:尽量少做转型动作
C++中的转型语法包括旧式转型和新式转型。原创 2014-06-08 19:08:59 · 557 阅读 · 0 评论 -
条款19:设计class犹如设计type
Class的设计就是type的设计,原创 2014-06-07 01:43:50 · 400 阅读 · 0 评论 -
条款22:将成员变量声明为private
结论1:切记将成员变量声明为private。这可赋予客户访问数据的一致性、可细微划分原创 2014-06-07 16:17:41 · 417 阅读 · 0 评论 -
条款26:尽可能延后变量定义式的出现时间
结论1:尽可能延后变量定义式的出现,这样做可增加程序的清晰度ua原创 2014-06-08 18:40:16 · 424 阅读 · 0 评论 -
条款28:避免返回handles指向对象内部成分
结论1:避免返回handles(包括references、指针、迭代器)指向对象内部成分原创 2014-06-08 19:48:02 · 466 阅读 · 0 评论 -
条款21:必须返回对象时,别妄想返回其reference
结论1:原创 2014-06-07 15:43:18 · 412 阅读 · 0 评论 -
条款23:宁以non-member、non-friend替换member函数
结论1:宁可拿non-member non-friend函数替换member函数。这样做可以增加封装性、qn原创 2014-06-07 18:07:57 · 624 阅读 · 0 评论 -
条款24:若所有参数皆需类型转换,请为此采用non-member函数
结论1:如果需要为某个函数的所有参数(包括原创 2014-06-07 18:24:04 · 427 阅读 · 0 评论 -
条款12:复制对象时勿忘其每一个成分
结论1:Copying函数应该确保复制“对象内的所有成员变量”及“所有base class成分原创 2014-06-02 14:01:32 · 495 阅读 · 0 评论