1.让自己习惯c++

尽量用const 而不用宏定义

1 两个成员函数如果只是常量性不同,是可以被重载的。
2 const对象大多用于 function()const;
3 如果函数的返回类型是个内置类型,那么改动函数返回值从来就是不合法的,如:ctb[0]='x' 这里的返回operator[] 的返回类型是char 而不是char &纵使合法,返回的也是那个数据的副本。
4 const int* n 或 int const* n;//被指物是常量 int * const n;//指针是常量
5 retype function()const //const函数
6. mutable int num;//即使在const成员函数内也可以改变
7 const成员函数只能调用const成员函数(C++不允许const成员函数调用非const成员函数,因为非const函数可能会设置或者修改数据成员的值)const对象只能调用const成员函数,也是同理。但const成员函数的调用者可以是const的也可以是非const的。
8 在构造函数本体内对成员变量是进行赋值操作,而成员初值列则是初始化 // 初始化的效率比较快 内置类型的初始化和赋值成本是一样的.先父类的,然后class的成员变量总是以其声明次序被初始化
9 相同class的object的互为friend
10 带有指针的类需要自己写copy构造函数、赋值构造函数、析构函数。不带的指针的类的,编译器会自动给出这些函数。若是编译器的给的构造或者赋值函数,会造成内存泄漏而且指针指的是同一个地址的东西。
1.png
11指针赋值函数 指针赋值构造函数,防止自我赋值
2.png
12output函数 output函数必须是全局函数,包括是友元函数,不能是成员函数
output函数.png
13 stack即存在于某作用域的一块内存。 而heap是全局内存空间,动态分配new和delete是成对出现的。 static成员是全局的。
14static 类里面隐含this指针,static函数不没有隐含this指针(static函数处理 static变量)
static.png
15单一类 单一类
single_class
single_class2
16 继承类中,父类的析构函数必须是virtual
17虚函数 这里调用了子类的virtual Serialize函数
虚函数
18构造函数
构造函数.png
19转换函数
转换函数
先找+操作符有没有重载
20智能指针
智能指针
21仿函数
22成员模板
成员模板.png
23特化
24 模板模板参数
模板模板参数
25多模板参数
多模板参数.png
26迭代
迭代

你可能感兴趣的:(1.让自己习惯c++)