
Effective C++
文章平均质量分 81
geeeeeeee
这个作者很懒,什么都没留下…
展开
-
Effective C++摘要《第4章:类和函数:设计与声明》20090209
===条款18: 争取使类的接口完整并且最小======条款19: 分清成员函数,非成员函数和友元函数===结论:假设f是想正确声明的函数,c是和它相关的类·虚函数必须是成员函数。如果f必须是虚函数,就让它成为c的成员函数。·operator>>和operator>或operator·只有非成员函数对最左边的参数进行类型转换。如果f需要对最左边的参数进行类型转换,让f成为非成员函数。如果f还需要访原创 2009-02-09 13:38:00 · 636 阅读 · 0 评论 -
Effective C++摘要《1、2章:从c转向c++、内存管理》20090206
===条款1:尽量用const和inline而不用#define===这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分有了const和inline,你对预处理的需要减少了,但也不能完全没有它。抛弃#include的日子还很远,#ifdef/#ifndef在控制编译的过程中还扮演重要角色。===条款2:尽量用而不用===iostream库的类和函数原创 2009-02-06 21:07:00 · 993 阅读 · 0 评论 -
Effective C++摘要《第3章:构造函数、析构函数、赋值操作符》20090207
===条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符===对于有些类,当实现拷贝构造函数和赋值操作符非常麻烦的时候,特别是可以确信程序中不会做拷贝和赋值操作的时候,去实现它们就会相对来说有点得不偿失。这种情况下,很简单,照本条款的建议去做:可以只声明这些函数(声明为private成员)而不去定义(实现)它们这就防止了会有人去调用它们,也防止了编译器去生成它们===条款12:原创 2009-02-07 21:49:00 · 672 阅读 · 0 评论 -
Effective C++摘要《第6章:继承和面向对象设计》20090210
===条款35: 使公有继承体现 "是一个" 的含义===当写下类D("Derived" )从类B("Base")公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D的每一个对象也是类型B的一个对象,但反之不成立;class Student: public Person { ... };在C++世界中,任何一个其参数为Person类型的函数(或指针或引用)可以实际取一个Student对原创 2009-02-10 01:46:00 · 788 阅读 · 0 评论 -
Effective C++摘要《第7章:杂项 真正认识C++》20090210
===条款45: 弄清C++在幕后为你所写、所调用的函数===一个空类什么时候不是空类? ---- 当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{}原创 2009-02-10 16:32:00 · 788 阅读 · 0 评论 -
Effective C++摘要《第5章:类和函数:实现》20090209
===条款29: 避免返回内部数据的句柄===假设b是一个const string对象:class string {public: string(const char *value); // 具体实现参见条款11 ~string(); // 构造函数的注解参见条款m5 operator char *() const;原创 2009-02-09 19:14:00 · 781 阅读 · 0 评论