c++
文章平均质量分 77
风铃奈
加油加油加油呀
展开
-
【C++】面试常考的三大特性——封装、继承、多态
文章目录封装继承多态封装1.什么是封装封装是将数据与方法进行结合,隐藏对象的部分属性和实现细节,对外开放一些接口,通过这些接口约束,类外可以合理的访问类内的属性2.封装的作用封装可以让数据隐藏让类外合理访问类内的数据3.为什么需要封装将一个对象的属性和行为结合在一起更符合人们对事务的认知,通过访问限定符将部分功能开放出来域其他对象进行交互,外部用户是不需要知道具体的实现细节的,即使知道了,也只会增加使用和维护的难度,让事情变得复杂例如我们坐火车买票,我们只需要知道票在哪买的,去哪里可以乘车原创 2022-05-11 17:21:29 · 2280 阅读 · 0 评论 -
【C++】C/C++什么是内存泄露,内存泄露如何避免
C/C++什么是内存泄露,内存泄露如何避免? 1. 内存溢出2. 内存泄漏3. 造成内存泄露常见的三种情况3.1 指针重新赋值3.2 错误的内存释放3.3 返回值的不正确处理 4. 如何避免内存泄露?5. 内存泄露检测工具valgrind 1. 内存溢出 内存...转载 2022-04-09 15:25:53 · 266 阅读 · 0 评论 -
【C++】哈希详解--哈希冲突解决办法
文章目录1.哈希概念2.哈希碰撞(哈希冲突)2.1哈希冲突产生原因2.1.1哈希函数设计原则2.1.2常见哈希函数2.2 处理哈希冲突的方法1.闭散列定义1.1线性探测1.2二次探测哈希负载因子2.开散列1.定义2.实现3.扩容3.开散列与闭散列比较1.哈希概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log2N ),搜索的效率取决于搜索过程中元素的比较次数。所以我们期待原创 2022-04-08 09:19:58 · 2308 阅读 · 0 评论 -
【C++】类与对象——类的六个默认成员函数
文章目录一、构造函数1.概念2.特征编译器生成的默认成员函数的意义3.成员变量的命名风格4.构造函数体赋值5.初始化列表5.1 格式5.2 注意事项5.3初始化顺序6.explicit关键字析构函数1.概念2.特征拷贝构造函数类中有六个默认成员函数,即使一个成员都没有,空类中也不是空白的,任何一个类在我们不写的情况下都会默认生成6个成员函数下面一一介绍一、构造函数1.概念构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对原创 2022-03-30 21:05:15 · 1626 阅读 · 0 评论 -
【C++】引用详解——引用与指针的区别
文章目录1.引用概念举例2.引用特点举例3.常引用4.引用应用场景1.做参数2.使代码更加简洁化3.做返回值举例5.传值、传引用效率比较5.1参数举例结果5.2返回值举例结果6.指针和引用的共性传引用的汇编代码传地址的汇编代码7.指针和引用的不同1.引用概念类型名& 引用变量名(对象名)=引用实体;引用不是新定义一个变量,而是给已经存在的变量取一个别名,编译器不会为引用变量开辟空间,他和他的引用共用同一块内存举例注意:引用类型必须和引用实体是同种和类型的void Test(){原创 2022-03-21 21:12:52 · 1446 阅读 · 0 评论 -
【C++】类与对象——this指针的三两事
文章目录this指针的定义this指针的引入例子this指针的特性this指针存储地点this指针可以为空吗我们之前学习了类的基本知识,例如类的定义,类的访问限定符,以及类的大小怎么求解,今天我们扒一扒this指针记得复习之前的内容🎅类与对象——什么是类?定义?访问?作用域?🎅类与对象——如何计算类对象的大小this指针的定义this指针是类成员函数的第一个隐藏函数,该指针时时刻刻指向调用成员函数的对象this指针的引入例子class Dta{public: void displ原创 2022-03-19 00:22:12 · 933 阅读 · 0 评论 -
【C++】C++中class和struct的相同与不同
文章目录C++与C语言中struct的区别C++中struct和class的相同点C++中struct和class的不同点C++与C语言中struct的区别C++中的struct对C语言中的struct进行扩充,主要区别如下CC++成员函数不能可以静态成员不能可以防控属性默认public,不能修改public\private\protected继承关系不可以继承可以从其他结构体继承初始化不能直接初始化数据成员可以C++中struc原创 2022-03-17 22:56:41 · 1620 阅读 · 0 评论 -
【C++】什么是大小端,如何判断大小端
文章目录什么是大小端大小端与操作系统有关嘛如何判断大小端方法一方法二什么是大小端大小端也可以理解为字节顺序,或者端序、尾序,就是大端序(Big-Endian)、小端序(Little-Endian)。1.大端模式:是指数据的高字节保存在内存的低地址中;2.小端模式:是指数据的高字节保存在内存的高地址中;例如0x12345678大小端与操作系统有关嘛大小端与操作系统是没有关系的大小端主要有用于存储的顺序,与存储器(硬件)关系比较大编译器和操作系统仅仅是配合CPU编译好相应的代码,而原创 2022-02-07 23:35:40 · 4055 阅读 · 4 评论 -
【C++】malloc/calloc/realloc三个动态内存管理的区别
malloc/calloc/realloc对于参数个数上,是否初始化上,realloc分配内存的几种情况上进行了分析原创 2022-02-07 10:12:25 · 520 阅读 · 1 评论 -
【C++】空类的大小是多少?0 or 1?
文章目录学习前提1.假设2.分析正确的结论为什么将空类的大小定为1呢?学习前提如何计算类的大小1.假设我们先假设空类的大小就是0,那用这个空类去定义三个对象c1,c2,c3.首先要知道,这三个对象是不是一样的?不是呀,这是三个不同的对象2.分析但是我们都知道,创建对象要在栈帧上开辟空间我们假设了 空类的大小是0,发现c1,c2,c3存储在相同的位置上,即这三个对象的地址是一样的,也就是三个一样的对象,而这又是三个不同的对象,说明了我们的假设是有误的正确的结论空类的大小不是0原创 2022-01-25 23:56:20 · 679 阅读 · 1 评论 -
【C++】static详解
文章目录①.static修饰变量1.1修饰局部变量:特点1.2修饰全局变量特点全局变量和静态全局变量的区别静态全局变量的好处②.static修饰函数特点注意①.static修饰变量1.1修饰局部变量:#include <iostream>using namespace std;void fn();int main(){fn();return 0;}void fn(){ static int n = 10;//静态全局变量cout<<n<<e原创 2022-01-23 23:34:14 · 86 阅读 · 1 评论 -
【C++】求某成员相对于结构体起始位置的偏移量?
offsetof原创 2022-01-14 20:40:41 · 580 阅读 · 2 评论 -
【C++】类与对象——如何计算类对象的大小
文章目录前言第一步类对象里存储什么假设一一个对象里存储了所有的成员变量和方法假设二一个对象里存储了所有的成员变量和一个指向成员函数的数组指针假设三一个类对象里只存储了成员变量实际结果结论前言如果有小伙伴不太了解类的“形象”,可以参照这篇文章什么是类?定义?访问?作用域?本篇文章是介绍类对象的大小,与结构体大小计算非常相似,如果对结构体大小计算不清楚话,要提前学习哦结构体大小怎么计算?内存对齐?偏移量?第一步类对象里存储什么????我们想要计算类对象的大小,就要先清楚类对象里存储的是什么我们原创 2022-01-12 18:51:41 · 977 阅读 · 0 评论 -
【C++】类与对象——什么是类?定义?访问?作用域?
文章目录类的定义类如何定义呢类的两种定义方式1.定义和声明全部放在类内2.声明在.h文件,定义在.cpp文件注意类的访问限定符和封装什么是封装定义本质访问限定符注意类的作用域举例类的实例化类的定义类如何定义呢类的两种定义方式1.定义和声明全部放在类内struct People{public: void InitPeople(const char* name, const char* gender, int age) { strcpy(_name, name);原创 2022-01-12 17:22:30 · 207 阅读 · 0 评论 -
【c++】结构体大小怎么计算?内存对齐?偏移量?
文章目录计算结构体大小结构体计算要遵循内存对齐原则什么是内存对齐为什么需要内存对齐内存对齐准则指定内存对齐的大小1.`#pragma pack(n)`2. `配置属性`结构体计算大小举例总结计算结构体大小结构体计算要遵循内存对齐原则什么是内存对齐????首先需要理解什么是内存对齐通过牺牲内存空间来满足CPU访存硬件限制,提升效率的方式,我们叫做内存对齐为什么需要内存对齐????为什么需要内存对齐?,不对齐不行?平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的原创 2022-01-12 15:48:54 · 1351 阅读 · 0 评论 -
【C++】第四节——宏和内联函数
文章目录????为什么宏函数存在副作用内联函数????为什么内联函数特性补充debug和release 的区别Debug 版本Release 版本????为什么????为什么a的值已经被改变为100了,但是输出了时候还是10?在c++中,被const 修饰的变量一般被称为常量,且具有宏替换的作用在编译阶段,在所有使用const常量的位置,用常量的值代替该常量(注意:&常量除外)代码必须经过预处理,编译,汇编,链接才可以执行,所以在编译阶段,编译器就直接将a替换成了10,所原创 2022-01-07 19:07:52 · 845 阅读 · 1 评论 -
【C++】第三节——引用详解
文章目录引用——别名(&)特点常引用引用的应用场景1.使代码书写更加简化2.引用类型作为函数形参3.引用作为函数返回值指针和引用共性传引用的汇编代码传地址的汇编代码指针和引用的不同引用——别名(&)类型名& 引用变量名(对象名)=引用实体;引用不是新定义一个变量,而是给已经存在的变量取一个别名,编译器不会为引用变量开辟空间,他和他的引用共用同一块内存特点引用在定义时必须初始化一个变量可以有多个引用引用一旦引用了一个实体,变不能引用其他实体常引用void T原创 2022-01-05 23:49:17 · 1376 阅读 · 9 评论 -
【C++】第二节——C语言和c++关于函数方面的区别
主要从编译器的严格程度,缺省参数和函数重载三个方面介绍C语言和C++在函数方面的不同原创 2022-01-04 11:42:09 · 1088 阅读 · 2 评论 -
【C++】第一话——初识C++
本篇文章初识c++,主要介绍了命名空间的定义和使用原创 2022-01-01 22:04:03 · 767 阅读 · 1 评论