TreeMind树图在线AI思维导图
当前位置:树图思维导图模板高校与高等教育医学《C++ Primer》知识点总结(二)思维导图

《C++ Primer》知识点总结(二)思维导图

  收藏
  分享
免费下载
免费使用文件
L . 浏览量:62022-11-02 15:52:54
已被使用0次
查看详情《C++ Primer》知识点总结(二)思维导图

《C++ Primer》知识点总结

树图思维导图提供 《C++ Primer》知识点总结(二) 在线思维导图免费制作,点击“编辑”按钮,可对 《C++ Primer》知识点总结(二)  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6f80a07f69612f4c24d16b7b34b0e04c

思维导图大纲

《C++ Primer》知识点总结(二)思维导图模板大纲

重要知识点

引用

为对象起了另外一个名字,引用类型引用(refers to)另外一种类型

int ival = 1024; int &refVal = ival; //refVal 指向ival(是ival的另一个名字) int &refVal2; //报错:引用必须被初始化

定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是拷贝

int &refVal3 = 10; //错误:引用类型的初始值必须是一个对象 double dval = 3.14; int &refVal4 = dval; //错误:此处引用类型的初始值必须是int型对象

指针

本身是一个对象,允许赋值和拷贝,无需在定义时赋初值

int ival = 42; int *p = &ival; //正确 double *pd1 = &ival //错误:类型不匹配

空指针

nullptr

int *p1 = nullptr; //C++新标准 //等价于 int *p1 = 0;

建议

初始化所有指针(如果不初始化,将拥有一个不确定的值)

int ival = 1024; int *p = &ival; int **ppi = π //指向指针的指针 int i = 42; int *p; int *&r = p; //指向指针的引用

const

const类型的对象不能改变其内容

//file_1.cc定义并初始化了一个常量,该常量能被其他文件访问 extern const int bufSize = fcn(); //file_1.h头文件 extern const int bufSize; //与file_1.cc中定义的bufSize是同一个

程序员常将"对const的引用"简称为"常量引用"

int i = 42; const int &r1 = i; //允许将const int &绑定到一个普通int对象上 const int &r2 = 42; //正确:r2是一个常量引用 //reason: 编译器会创建一个临时量对象 // const int r = 42; const int &r2 = r; // const int &r3 = r1 * 2; //正确:r3是一个常量引用 int &r4 = 42: //错误 int &5 = r1*2; //错误,非常量引用不可以这么干

常量指针

必须初始化,一旦初始化完成,则值不能再改变(存放在指针中的地址),不变的是指针的本身而不是指向的那个值

int errNumb = 0; int *const curErr = &errNumb; //curErr将一直指向errNumb const double pi = 3.14159; const double *const pip = π //pip是一个指向常量对象的常量指针

顶层const:指针本身是个常量

底层const:指针所指的对象是一个常量

static

修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它

修饰普通函数,表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名空间里的函数重名,可以将函数定位为 static

修饰成员变量,修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员

修饰成员函数,修饰成员函数使得不需要生成对象就可以访问该函数,但是在 static 函数内不能访问非静态成员

this指针

this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象

当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用 this 指针

当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针

this 指针被隐含地声明为: ClassName *const this,这意味着不能给 this 指针赋值;在 ClassName 类的 const 成员函数中,this 指针的类型为:const ClassName* const,这说明不能对 this 指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作)

this 并不是一个常规变量,而是个右值,所以不能取得 this 的地址(不能 &this)

在以下场景中,经常需要显式引用 this 指针

为实现对象的链式引用

为避免对同一对象进行赋值操作

在实现一些数据结构时,如 list

相关思维导图模板

《C++ Primer》知识点总结(五)思维导图

树图思维导图提供 《C++ Primer》知识点总结(五) 在线思维导图免费制作,点击“编辑”按钮,可对 《C++ Primer》知识点总结(五)  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:5725866dfdc79fd02c7c7625ad607eb3

《C++ Primer》知识点总结(四)思维导图

树图思维导图提供 《C++ Primer》知识点总结(四) 在线思维导图免费制作,点击“编辑”按钮,可对 《C++ Primer》知识点总结(四)  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:57ac5d02c24062bf3cf3a47efbd20348