- 博客(5)
- 收藏
- 关注
原创 C++个人学习继承多态模板的一些笔记
C++中this指针每一个非静态成员函数指挥诞生一份函数实例,也就是说多个相同类型的对象会共用一块代码这一块代码是如何区分那个对象调用自己的呢?C++通过提供特殊的对象指针,this指针来解决这个问题,this指针指向被调用的成员函数所属的对象this指针是隐含每一个非静态成员函数内的一种指针this指针不需要定义,直接使用即可当形参和成员变量同名时,可用this指针来区分,在类的非静态成员函数中返回对象本身,可用return *this成员函数后加const我们称为常函数常函数内不可以
2021-12-03 14:28:00
274
原创 C++模板的局限性和如何解决模板的一些局限性
模板的通用性并不是万能的,例如:这时你传入一个自定义类型交换模板,编译器就不知道怎么交换了,编译器就会报错。这时有两个办法。第一个办法就是重载运算符。这个办法有点low,而且C++的运算符也不少,建议第二种。第二种办法是提供一个具体化模板这时编译器会优先调用具体化版本实现两个自定义数据类型交换...
2021-11-26 11:52:56
618
原创 C++的引用函数重载,函数重载遇到默认参数
C++中引用也可以作函数重载的那么下面图中void fun (int &a)和void fun (const int &a)是如何发生重载的呢编译器会如何区分?首先引用的条件是被引用的数据在堆区或者栈区,当你int a=10;把a传入时a是一个变量,变量是可读可写的,而const修饰的是只读的不可以写的。所以调用的是void fun (int &a)当你传入一个常量的话,我们都知道常量是存储在全局区的,也就是说即不在栈区也不在堆区,这不符合引用的条件,那么fun(10)为
2021-11-26 11:12:25
537
原创 C++的内存四区
C++程序在执行时,将内存大方向划分成4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量(字符串常量,const修饰的常量) 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,在程序结束时由操作系统回收不同区域存放的数据有着不同的生命周期程序运行前在程序编译后生成exe可执行的机器指令,未执行该程序前分为两个区域代码区:存放CPU执行的机器指令。 代码...
2021-11-22 23:25:10
149
原创 初学C++。C++中float类型初始化(赋值)数据时,数据后面为什么要加f?
因为C++中float类型初始化(赋值)数据时,如果数据后面没有加f,系统会默认数据为double类型,当这个数据赋值给float类型时,系统会先把数据从double类型转换成float类型再把数据赋值给float类型定义的变量中。如果你在数据的后面加上一个f时,系统默认为float类型,此时就不需要系统转换类型,可以直接赋值给float类型定义的变量中。从而减少一些不必要的工作,提高代码的质量和运行速度。...
2021-11-19 16:04:33
6172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人