![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 95
雨轩(爵丶迹)
23届IoT专业,随时欢迎交流
展开
-
高并发内存池
高并发内存池项目介绍什么是内存池1.池化技术2.内存池3.内存池主要解决的问题4.malloc设计一个自己的定长内存池(自己开超市)高并发内存池框架整体设计高并发内存池--Thread Cache(第一层)哈希桶ThreadCache中的自由链表(FreeList)ThreadCache框架申请内存空间从中心缓存获取内存对象高并发内存池--Central Cache(第二层)CentralCache中的双向链表(SpanList)CentralCache框架从中心缓存获取一定数量的对象给Thread Cac原创 2022-04-04 23:38:28 · 2063 阅读 · 19 评论 -
C++11特性(详细版)
C111、C11优势2、列表初始化3、变量类型推导1、为什么需要类型推导2、decltype类型推导(了解)为什么需要decltypedecltype4、final 与 overridefinaloverride5、默认成员函数控制1、显示缺省函数2、删除默认函数(禁止调用)6、右值引用与移动语义1、左值引用和右值引用1、什么是左值?什么是左值引用?2、什么是右值?什么是右值引用?2、左值引用与右值引用比较3、右值引用使用场景和意义7、完美转发8、新的类功能1、C11优势 相比C++98/03,C++原创 2022-03-17 17:44:46 · 26214 阅读 · 15 评论 -
特殊类设计(C++面试常考)
C++面试常考,只在堆上找对象,只在栈上找对象!!!原创 2022-03-08 14:41:37 · 590 阅读 · 6 评论 -
智能指针(解决你的内存泄漏)
智能指针,解决你的单身问题原创 2022-03-06 11:12:36 · 2292 阅读 · 16 评论 -
异常--常见处理方式,异常安全、规范
异常1. C语言传统的处理错误的方式2. C++异常概念3. 异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范4. 自定义异常体系5. 异常的优缺点1. C语言传统的处理错误的方式传统的错误处理机制:终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误C 标准库中setjmp和longjmp组合。这个不是很原创 2022-02-28 14:26:18 · 467 阅读 · 10 评论 -
继承(C++)
继承什么是继承?继承的概念继承如何定义基类(父类)和派生类(子类)对象赋值转换继承中的作用域派生类的默认成员函数什么是继承?继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类(子类)。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。一、比如动物 Aniaml 具有的共性:吃饭、睡觉。狗会叫,但是狗也会原创 2022-01-22 18:21:54 · 778 阅读 · 13 评论 -
vector的模拟实现(C++)
vector1、vector容器介绍vector的存在形式2、整体框架3、begin 和 end4、size 和 capacity5、[ ] 重载6、reserve 容量大小7、resize 重新定义大小8、push_back 尾插9、pop_back 尾删10、insert 插入11、erase 删除迭代器失效问题inserterase删除所有的偶数12、构造函数无参构造有参构造拷贝构造析构1、vector容器介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存原创 2022-01-14 21:54:40 · 973 阅读 · 9 评论 -
C、C++内存管理
C/C++内存管理1、C/C++内存分布我们先来看内存区域的一个划分栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下)堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据和静态数据。代码段–可执行的代码/只读常量。 常规描述:全局变量和静态变量都存储与数据段常原创 2021-11-17 14:08:50 · 274 阅读 · 4 评论 -
类与对象(下篇)
类与对象在谈构造函数二级目录三级目录在谈构造函数1、构造函数赋值问题前面我们谈到,构造函数赋值,都是通过有参函数来赋值的。虽然我们通过调用构造函数使对象已经有了一个初始值,但不能将其称为类对象成员的初始化。class A{public: A(){} A(int a) { _a = a; }private: int _a;};class Date{public: Date(int a, int b) { //函数体内初始化 _aa = A(a); _b =原创 2021-10-27 16:56:43 · 26030 阅读 · 23 评论 -
类与对象(中篇)
类与对象中篇类的六个默认成员函数构造函数和析构函数1、构造2、析构拷贝构造函数三级目录类的六个默认成员函数如果一个类中什么都没有,简称为空类。但空类里面会自动生成6个默认成员函数,因为这是由编译器生成的,我们看不到。空类:class Date {};构造函数和析构函数1、构造构造函数是特殊的成员函数,需要注意的是,构造函数的虽然名称叫构造,但是需要注意的是构造函数的主要任务并不是开空间创建对象,而是初始化对象。函数名与类名相同。无返回值。对象实例化时编译器自动调用对应的构造函数。原创 2021-10-22 13:41:00 · 12231 阅读 · 30 评论 -
类与对象(上篇)
类与对象前言类的引入类的定义类的访问限定符及封装访问限定符封装类的作用域类的实例化类对象模型如何计算类的大小前言面向过程和面向对象的初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。这里要特别说明一下,C++是基于面向对象的,而不是面向对象,因为既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,以及面向对象的程序设计(只能说基于面向原创 2021-10-18 00:27:25 · 3055 阅读 · 18 评论 -
C++入门
C++入门命名空间命名空间的定义命名空间的使用缺省参数重载命名空间在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,有可能重名导致冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,利用关键字namespace可以解决重名问题。命名空间的定义定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员。{ }可以包含变量名,函数名,类名。//1. 普通的命原创 2021-10-06 17:11:33 · 1526 阅读 · 16 评论