c++ base

近期又过了一遍c++基础,为了加深印象,暂且罗列了一些比较简单的概念,如有错误之处还望批评指正,因为我也不想误导他人。不得不说,c++有很多值得研究和记录的地方,后续应该会一一道来。

概念 介绍
void类型 说明函数无返回值或指针是无类型的。
const修饰符 定义常量
声明和定义 声明:表明变量的类型和名称。
定义:是一种声明,当同时为变量分配了存储空间,并且可以对变量进行初始化。
在一个程序中,变量只能被定义一次。
include “”和<> <>通常用于引入系统标准头文件,编译器直接在系统文件目录下查找。
“”通常用于引入自定义文件,编译器查找顺序:当前程序目录 -> c/c++安装目录 -> 系统文件目录
虚函数 建立抽象模型,实现动态联编(在程序运行时动态地选择合适的成员函数),以达到扩展系统的目的。
虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。
动态解析规定,只能通过指向基类的指针或基类对象的引用来调用虚函数。
在派生类中,如果一个派生类函数的名称和参数列表与基类中声明的虚函数相同,则返回类型也必须与虚函数一致。
如果出现不一致的情况,这个派生类函数就不会被编译。
此外,虚函数也不能作为模板函数使用。
纯虚函数 实现多态。
基类无法给出有意义的实现,被标为不具体实现的虚函数,一种特殊的虚函数。
纯虚函数的实现由派生类来执行,含有纯虚函数的类是抽象类(不能生成对象)。
数组指针 指向一个数组的指针。
指针数组 数组中的每个元素都是指针。
引用传递 传递的是引用对象的内存地址。
指针 vs 引用 1. 指针是一个实体,指向一块内存地址。引用是某块内存的别名;
2. 引用使用时无需解引用,指针需要解引用(*);
3. 引用只能在定义时被初始化一次,之后不可变,指针可变;
4. 引用没有const,指针有;
5. 引用不能为空,指针可以;
6. sizeof引用得到的是所指向变量的大小,而sizeof指针得到的是指针本身的大小;
7. 指针和引用的自增运算意义不一样,指针自增的是地址,而引用自增的是实际变量值;
8. 在内存分配上,程序为指针变量分配内存区域,而引用不需要分配内存区域。
浅复制(浅拷贝) 在对象复制时,只对对象中的数据成员进行简单的赋值。默认的复制构造函数执行的是浅复制。
深复制(深拷贝) 不仅仅是简单的赋值,而且重新动态分配空间。
内联函数(inline) 解决函数调用的效率问题。在类声明的内部声明或定义的成员函数,使用关键字inline声明。
内联函数内不允许使用循环语句和开关语句,否则编译器将其是为普通函数。
内联函数的定义必须出现在第一次被调用之前。
静态函数 只能访问静态变量,因为静态函数没有this指针。
函数重载 在相同作用域中,函数名相同,但形参列表不同。
函数调用的匹配顺序:精准匹配>标准转换匹配>类类型转换匹配。

c++ base
https://r-future.github.io/post/cplusplus-base/
Author
Future
Posted on
September 19, 2019
Licensed under