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