C++主要特色:编译型语言,强类型(并不是类型安全),操做符重载,泛型(STL库容器)。数组
匿名联合:主要体现成员变量在内存中分布的方式,外界没法调用无名的对象。安全
bool:任何基本类型都能隐式转为布尔类型。函数
函数重载:spa
原理:g++编译器换名机制,形参表不一样则换名后函数名不一样。指针
extern C:按照C语言的方式编译,没法换名,没法函数重载。对象
编译器匹配函数的原则:blog
缺省参数:声明指定,定义不要指定;某一个参数有缺省值,后面的参数都须要;避免缺省参数产生重载歧义。内存
inline函数:编译后用二进制代码替换函数调用。减小调用时间的开销(各类保存现场,出栈入栈)。C++内联函数优于C语言的有参宏(宏函数)。编译器
动态内存分配:编译
malloc/free与new/delete:前者继续可用,后者分配同时初始化(例如类的初始化表、引用等)。
数组方式分配: 类型 *p = new 类型 [] {}
释放: delete [] p; p = NULL;(防止双重释放报错)
引用:
内存的别名(alias),对引用操做即对目标内存操做;不占内存,并不是实体(从C++看,从汇编来看是指针);
必须初始化,不能换目标;常属性要求一致,能够更加严格,int a; const int &ra= a;
常引用(万能引用)延长临时变量的生命期。
引用形参以及常引用形参:
避免复制对象产生开销;
常引用形参:防止修改实参;接受常类型实参,foo(a,10);
引用型返回值:不能返回局部变量的引用。
类型转换: