1.多态前提:继承,虚函数,指针或引用
2.含有纯虚函数的类为抽象类不能创建对象
3.友元:友元函数,友元类
4.静态:属于整个类公用,数据:类外初始化,函数:只能访问静态成员
5.友元,静态,都没有this指针
6.形参为const函数中,形参只能调用const函数
7.copy构造中可以不使用const但必须使用&,定义一个构造后,编译器将不再合成默认构造函数
8.定义构造函数不定义copy构造时,依然会自动合成默认构造
9.默认copy构造将就对象逐字节copy到新对象,当有指针成员时不要使用默认copy构造
10.浅copy即新对象与老对象公用同一实体,深copy即新对象与老对象相互独立
11.使用重载运算符时,至少有一个自定义类型
12.友元函数在类中声明,类外定义
13.运算符重载定义为友元:在类中声明为friend,定义:返回类型 operator+(形参1,形参2),obj1+obj2 => operator+(obj1, obj2)返回值为计算结果
14.运算符重载为成员:直接在类中定义,返回类型 operator+(形参),obj1+obj2 => obj1.operator+(obj2)返回值作为运算结果
15.const成员函数中*this为const,非const函数可以调用const,const函数不能调用非const
16.friend ostream& operator<<(ostream& os, const F& f);
17.friend istream& operator>>(istream& is, F& f);
18.前加重载:friend A& operator++(A& a);或者成员A& operator++();
19.后加重载:friend A& operator++(A& a, int);或者成员A& operator++(int);
20.a++;后a值加1,返回a加1前复制的数据
21.强制类型转换,operator int(){};
22.=,[],(),->等运算符重载只能是成员函数