C/C++
文章平均质量分 81
`Nobody
小菜鸡
展开
-
C++知识点
浅拷贝、深拷贝 深拷贝和浅拷贝最根本的区别就是是否真正的获取一个对象的复制体,而不是引用 假如有两个对象A和B,B复制了A,修改A的时候,看B是否发生变化: 如果B也跟着变,说明是浅拷贝(修改的是堆中同一块内存) 如果B没有改变,说明是深拷贝(修改的是堆内存中不同的值) 浅拷贝:增加了一个引用指针指向已存在的内存地址,如果原地址发生改变,那么浅拷贝出来的对象都会发生改变。 深拷贝:增加了一个引用指针指向新申请的内存,用于存放复制的对象,如果原地址发生改变,...原创 2021-01-16 21:15:28 · 123 阅读 · 0 评论 -
深拷贝和浅拷贝
深拷贝和浅拷贝最根本的区别就是是否真正的获取一个对象的复制体,而不是引用 假如有两个对象A和B,B复制了A,修改A的时候,看B是否发生变化: 如果B也跟着变,说明是浅拷贝(修改的是堆中同一块内存) 如果B没有改变,说明是深拷贝(修改的是堆内存中不同的值) 浅拷贝:增加了一个引用指针指向已存在的内存地址,如果原地址发生改变,那么浅拷贝出来的对象都会发生改变。 深拷贝:增加了一个引用指针指向新申请的内存,用于存放复制的对象,如果原地址发生改变,并不会导致深拷贝出来的对象发生改变。 浅拷贝会导..转载 2021-01-16 10:36:15 · 129 阅读 · 1 评论 -
虚函数、虚指针、虚表
初识虚函数 虚函数是带有Virtual关键字的函数 纯虚函数在虚函数之后加 =0 的函数 虚函数是动态绑定的函数 虚函数必须是非静态成员函数(因为静态成员函数是没有this指针的) 析构函数可以是虚函数(减少内存泄漏) 构造函数不能是虚函数(时间上冲突) 虚函数的声明 virtual int ret() ; virtual 函数返回值类型 函数名 (参数列表) 虚函数是可以进行重写的,子类中可以对虚函数进行重写,也可以不重写。 意义:为了实现多态性,也就是动态绑...原创 2020-05-15 21:37:31 · 304 阅读 · 0 评论 -
C++的三大特性
C++有三大特性,分别是封装、继承、多态 封装: 字面意思就是包装的意思,专业术语来说就是信息隐藏。简单的来说就是一个类包装了一些数据以及操作这些数据的代码的逻辑实体。在一个类对象内部,某些操作或者数据可以是私有的,也可以是公有的。私有的是不能被外界锁访问的。通过这种方式,对类的内部成员提供了不同级别的保护,尽可能的去隐藏掉内部细节,只提供给对外的一些接口,用户无需知道对象内部细节,只通过接口来访问。 良好的封装可以减少耦合 可以对成员进行更精确的控制 class MyClass...原创 2020-05-15 15:21:51 · 1525 阅读 · 0 评论 -
C/C++日志的日常使用
作为一名学习程序的学生,在学习中编写过的代码、程序,没有日志功能,刚开始的时候,完全不知道日志的使用有什么意义,感觉特别鸡肋,出现问题,我自己调试一下完全都可以解决的事情,为什么要通过日志来输出。直到后来,才觉得以前的自己好 xx(你懂得)。最近写了一个注入的程序,你将Dll注入目标程序,你完全不能调试你的代码,更何况你想去修改你的代码,简直异想天开。在解决检查获取的来数据是否有效的时候,我想了很多种方法,但最后也觉得就是用日志输出,才是最方便的。 我在网上也找了好多方法,这里我就提供...原创 2020-05-12 16:41:34 · 1130 阅读 · 1 评论