《c++Primer》读书笔记

最近一直在看c++primer,总结了一些自己以前会迷惑和犯错的部分。

1

在类的内部定义的函数编译器一般会做inline处理(短小的函数)。

2
const成员函数要在声明和定义时都要指明是const。
3
如果没有特殊需求,不能随便暴露成员变量(设为private),通过定义存取函数进行访问。
4
为了防止不可预知的隐式转换,对于单个参数的构造函数要加上explicit进行限制(只需在声明出指出即可)。
5
对于inline函数,在声明时可以不指定为inline,在定义时再指定也可以。
6
成员函数返回值是自身的引用时,可以方便的实现链式操作。
7
声明为mutable的成员变量,在const函数内也是可以修改的。
8
成员函数形参表业处于类的作用域,因此可以使用类内部定义的类型作为成员函数形参。
但是成员函数返回值不处于类的作用域,当返回类型是在类内部定义的时,需要加上className::type限定符(有点绕,呵呵)。
9
采用初始化列表的构造函数,比直接用参数构造函数高效。
10
当类成员变量是:没有默认构造函数的类型,const对象,或引用类型时,只能通过初始化列表的形式进行初始化。
11
类成员的初始化顺序只跟成员变量在类中的声明顺序相同,跟初始化列表的顺序不同,所以慎重选择依赖其他成员变量来初始化某个成员变量。
12
构造函数也可以有默认值。
13
避免如下的对象生成
ClassA a();//假设有默认构造函数
这段语句会被编译器识别为一个返回值为ClassA的函数a。
正确方式应该为ClassA a=ClassA();
14
三法则:一旦定义了拷贝构造函数,赋值操作符,和析构函数中的一个或几个,则一定要全部定义这三个函数。
15
即使定义了自己的析构函数,默认的析构函数还是会执行的。

posted on 2013-09-10 15:51  yhimage  阅读(398)  评论(0)    收藏  举报

导航