C++初步学习

C++主要特点:编译型语言,强类型(并非类型安全),操作符重载,泛型(STL库容器)。

匿名联合:主要体现成员变量在内存中分布的方式,外界无法调用无名的对象。

bool:任何基本类型都能隐式转为布尔类型。

函数重载:

原理:g++编译器换名机制,形参表不同则换名后函数名不同。

extern C:按照C语言的方式编译,无法换名,无法函数重载。

 

编译器匹配函数的原则:

 

 

 

 

 

缺省参数:声明指定,定义不要指定;某一个参数有缺省值,后面的参数都需要;避免缺省参数产生重载歧义。

 

inline函数:编译后用二进制代码替换函数调用。减少调用时间的开销(各种保存现场,出栈入栈)。C++内联函数优于C语言的有参宏(宏函数)。

动态内存分配:

malloc/free与new/delete:前者继续可用,后者分配同时初始化(例如类的初始化表、引用等)。

数组方式分配:  类型 *p = new 类型 [] {}
    释放:  delete [] p; p = NULL;(防止双重释放报错)

引用:

 内存的别名(alias),对引用操作即对目标内存操作;不占内存,并非实体(从C++看,从汇编来看是指针);

必须初始化,不能换目标;常属性要求一致,可以更加严格,int a; const int &ra= a;

常引用(万能引用)延长临时变量的生命期。

引用形参以及常引用形参:

避免复制对象产生开销;

常引用形参:防止修改实参;接受常类型实参,foo(a,10);

引用型返回值:不能返回局部变量的引用。

类型转换:

 

 

posted on 2020-11-30 11:08  霍拉·cpp  阅读(77)  评论(0编辑  收藏  举报

导航