诚学X
这个作者很懒,什么都没留下…
展开
-
C++模版(一)
所以编译的时候不会报错,编译器确实为我们创建了特定类型Person的函数定义,在运行的时候才会检测到Person并没有 == 的操作符重载,从而报错。函数模版的作用就是,建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。函数模版在C++编译的时候并不会生成具体的函数,而是根据使用中的具体情况而生成特定的函数定义。函数模版并不是万能的,通常利用具体化的模版可以解决自定义类型的通用化。以上三个函数其实就是函数的重载了,唯一的区别就是函数的形参类型不同。原创 2024-03-17 14:17:28 · 265 阅读 · 0 评论 -
C++多态(一)
静态多态是指函数重载(或操作符重载),属于编译期间函数地址的早绑定(编译期间确定了函数地址)。有继承关系子类重写(方法名和参数完全一致)父类的虚函数父类指针或者引用指向子类的对象。原创 2024-02-28 22:05:16 · 898 阅读 · 0 评论 -
C++引用
引用从知识的层面可以理解为变量的别名。除了C++很多语言也都有类似的语法,将一个变量赋予给另一个变量,使得另一个变量同样可以操作此变量。引用作为函数返回值,函数的调用可以作为左值(可能初学者对左值不太理解,简单理解为变量即可,也就是可以赋值的变量)。喜欢逆向的小伙伴,可以发现,引用的本质是编译器实现的【语法糖】。引用在语义上的意思就是别名,所以实参和形参指向同样的地址空间。已经讲过了,局部在栈区,函数结束后,内存就会被释放了。),引用的本质在C++内部是一个指针常量。引用初始化之后不能再指向其它变量。原创 2023-12-16 20:46:59 · 372 阅读 · 0 评论 -
C++友元
友元在C++中就是为了让类外的一些函数或者类可以访问私有成员。关键字:friend友元很简单,只要记住友元的目的是让类外的函数或者类可以访问类内的私有成员,只要将类外的函数或者类声明为友元即可。原创 2024-01-02 22:04:27 · 351 阅读 · 0 评论 -
C++继承(一)
继承是面向对象的三大特性之一。继承顾名思义就是有父子关系,对于多个父子关系的结构,进行公共方法抽离为父类,将公共的成员方法和成员变量放置在父类中,供子类调用。原创 2024-01-21 11:13:50 · 309 阅读 · 0 评论 -
C++构造和析构
主要是用途是对象创建时成员变量的初始化,构造函数由编译器自动调用。没有返回值函数名和类型相同构造函数可以重载创建对象时,系统自动调用构造函数。原创 2023-12-20 21:06:25 · 392 阅读 · 0 评论 -
C++结构体
结构体就是所谓的自定义类型,通过组合基础类型(也可以包含已存在的自定义类型)。结构体同class类,区别就是结构体内部成员和属性默认是public。string sex;int age;} people3;//变量的创建方式1,struct可以省略//变量的赋值people1.name = "张三";//结构体变量创建方式2People people2 = {"李四", "男" , 19};//结构体变量创建方式3, 如上结构体创建时,在其尾部添加变量的创建(可多个)原创 2023-12-11 20:22:52 · 310 阅读 · 0 评论 -
C++继承(二)
继承中先调用父类的构造函数,再调用子类的构造函数,析构顺序与之相反。原创 2024-01-30 22:05:15 · 593 阅读 · 0 评论 -
C++ this指针
来定义变量,因为Person p;只是定义了一个指针变量,并没有给它分配内存,所以它是一个空指针。this英文意思是“这个”(内部使用的话,理解为自己或者当前即可),主要用在非静态成员函数中特指对象本身(哪个对象调用这个函数,函数中的this就指向哪个对象)。之前的知识,我们可以清晰地认识到每一个非静态的成员函数内部都会有一个this指针可以访问对象的成员函数,那么this空指针是什么概念呢?C++对象的成员变量和成员函数是分开存储的,C++的静态成员变量也是单独存储的,进一步的知识讲解可见。原创 2023-12-25 22:25:28 · 361 阅读 · 0 评论 -
C++多态(二)
C++多态精讲,看一遍深入人心,彻底理解多态的实质。原创 2024-03-03 22:30:21 · 374 阅读 · 0 评论 -
C++指针
可以通过指针访问内存,地址才可以访问内存,所以指针就是一个地址。//整形变量的定义int a = 10;//指针变量的定义int * p;//指针变量的赋值p = &a;//打印a的地址//指针的取值(解引用)return 0;原创 2023-12-09 11:44:24 · 386 阅读 · 0 评论 -
C++ const声明
C++ const声明的使用原创 2023-12-27 21:53:56 · 341 阅读 · 0 评论 -
C++文件操作
这一章只是对文件操作的一节实践课,C++文件操作fstream仅是对libc中posix接口的二次封装,提供了更友好的操作方式。通过文件操作可以将数据持久化到磁盘,C++对文件操作可以包含头文件<fstream>。二进制读写文件,不仅仅可以操作内置的数据类型,甚至可以操作自定义的数据类型。如:使用二进制写文件 ios::binary | ios::out。写对象二进制的方式,通过文本文件打开,会发现乱码现象。如果需要多种模式配合使用,可以使用 | 操作符。文件操作是学习编程语言的基础内容。原创 2024-03-10 16:14:05 · 463 阅读 · 0 评论 -
C++运算符重载
C++运算符重载,深度解析原创 2024-01-09 21:58:40 · 765 阅读 · 0 评论 -
C++函数
func(10)为什么不走第一个定义呢?int &a = 10不合法,所以只能走下面的代码,const int &a = 10是合法的,不明白?请参考我的另一篇文章。函数声明和函数定义的默认参数只能保留一份,以免出现二义性。如果某个位置参数有默认值,那么从这个位置开始向后必须赋值。这两个注意事项,在函数重载的知识点上可以着重学习下。函数重载很简单,这里不展开叙述了。函数名相同,参数不同。原创 2023-12-20 19:45:08 · 359 阅读 · 0 评论 -
C++内存分区
理解内存分区,对于C++的学习至关重要。分为代码区、全局区、栈区和堆区,下面一一简单讲解下。原创 2023-12-13 22:31:41 · 857 阅读 · 0 评论