![](https://img-blog.csdnimg.cn/34b82e1572f54c1f8825d9dd53942d16.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++进阶
文章平均质量分 88
本栏收录C++进阶类知识,针对C++的难点和难以察觉的细节进行专门解析
风君子吖
目前大二,学习C++方面知识
展开
-
高级IO_多路转接之epoll
今天我们所要学习的epoll作为多路转接的后起之秀,会弥补之前所讲的select和poll的所有缺点,可以说从思想上,epoll与select、poll完全不同。原创 2024-07-05 00:20:45 · 325 阅读 · 0 评论 -
高级IO_多路转接之Poll
上一章我们学习了select,但是select作为早期的多路转接接口,缺点十分明显,于是又出现poll和epoll等接口,今天我们就来学习一下poll的使用提示:以下是本篇文章正文内容,下面案例可供参考poll相比较于select,弥补了两个缺点。不再需要繁琐地更新需要关心的fd和其对应事件。可关心的fd数量不再受其接口内置的数据结构大小限制,可以根据用户需求自由调整。但是仍然还有缺点,那就是每次进行一次poll都是一次从用户态拷贝数据到内核态的过程。原创 2024-07-04 15:04:11 · 312 阅读 · 0 评论 -
高级IO_多路转接之select
关于IO,我们已经用过了不少IO接口,从最简单的printf、scanf->C语言文件接口fprintf、fscanf->系统文件接口read、write->再到我们的系统网络套接字接口send、recv。这些接口见证了我们的学习历程,但是这些接口真的就只有读写吗?不光有读写,还有等。就像是我们使用scanf的时候,需要我们去输入一些字符,程序才能继续运行,否则就会一直阻塞住,这就是等的过程。实际等的过程,其实也可以理解为,等待资源准备就绪的过程。而当等的时候,该线程。原创 2024-07-04 00:17:58 · 1066 阅读 · 0 评论 -
C++_类型转换
对于这些类型转换,显示的还好些,隐式类型的转换就有些麻烦,因此C++提出了自己的类型转化风格,注意因为C++要兼容C语言,所以C++中还可以使用C语言的。实际上这是因为编译器的优化导致的,由于i为const属性,所以编译器在打印i时,直接将早已被保存在寄存器的i的初始值10进行打印了,并没有去访问内存。static_cast用于非多态类型的转换(静态转换),编译器隐式执行的任何类型转换都可用static_cast,但它不能用于两个不相关的类型进行转换。不相关就是像指针,int 等类型就是互相不相关类型。原创 2024-04-20 01:53:01 · 748 阅读 · 0 评论 -
C++_特殊类的设计和单例模式
拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。懒汉模式区别于饿汉模式就是饿汉是程序一起的就创建的单例对象,但是懒汉则是程序运行一段时间后,需要创建再创建单例对象。这里提出一个疑问,像懒汉这种写法方式,我们的唯一实例new出来的,析构需不需要写一个delete来释放资源?原创 2024-04-17 16:38:55 · 952 阅读 · 0 评论 -
C++_智能指针
智能指针是一种采用RAII思想来保护申请内存不被泄露的方式来管理我们申请的内存,对于RAII,我们之前也已经有过接触,在学习异常和guard_mutex都有过接触RAII思想。今天我们将RAII运用到指针就是智能指针。提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2024-04-15 19:00:38 · 853 阅读 · 0 评论 -
C++异常
一般我们会在可能会发生异常的代码区尝试抛异常,也就是try的区域,当发生(检测到)异常后,就会跳转到catch区域,catch区域是为了尝试解决异常,即便无法解决,也不让异常终止整个程序,并记录日志信息方便debug。在有些场景下,有可能单个的catch不能完全处理一个异常,在进行一些校正处理以后,希望再交给更外层的调用链函数来处理,catch则可以通过重新抛出将异常传递给更上层的函数进行处理。不是的,可以有多个catch区,当有多个catch时,会匹配对应类型的catch进行跳转。会匹配最近的那一个。原创 2024-04-02 11:19:29 · 480 阅读 · 0 评论 -
C++_Function包装器和bind
到目前为止的学习,我们知晓了三种方式来传函数。原创 2024-04-01 04:27:02 · 314 阅读 · 0 评论 -
C++_Windows系统下如何创建多线程
对于多线程,之前几章内容已经详细讲解了Linux环境下如何创建多线程,本章内容主要讲解Windows环境下多线程的创建和使用,对于多线程的基本概念在这里不做过多的补充。原创 2024-03-29 13:19:45 · 601 阅读 · 0 评论 -
C++11_lambda表达式
这些就是lambda表达式的全部内容,lambda表达式还是十分有用的,对于一些我们只需要运行一遍的函数或者是对象内传仿函数类型,我们都可以使用使用lambda表达式。原创 2024-01-10 21:40:08 · 1193 阅读 · 1 评论 -
C++11_可变参数模版
C++11 ,添加了许多有用的功能,上章我们主要讲解了右值引用,这章我们来讲解可变参数模版的使用。提示:以下是本篇文章正文内容,下面案例可供参考对于可变参数模版的理解,我们还是要自己手动去练习,这样才能更好的理解与运用它,不过也不必过于深究,仅需了解即可。原创 2024-01-07 18:47:35 · 833 阅读 · 0 评论 -
C++11_右值引用
C++11 是2011年对C++这门语言发布的新标准,并且此次标准引入了十分多的新特性,很大程度上优化且增加了C++语言的实用性,本章主要讲 C++11 新引用的右值引用。原创 2024-01-06 21:22:11 · 1042 阅读 · 0 评论 -
C++ 多态 最详细图文+代码讲解
虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的返回值类型、函数名字、参数列表完全相同【三同】),则称子类的虚函数重写了基类的虚函数。这与普通函数的重载不同,函数的重载是需要参数的不同,且在同一作用域,而重写是针对虚函数的。那么总结下来,虚函数要完成重写需要满足以下条件1.这个函数得在基类和派生类中是虚函数(在派生类中可以省略掉virtural关键字,可以理解为是从基类继承下来的,但是推荐写上)。原创 2023-06-04 16:54:12 · 344 阅读 · 10 评论 -
C++ 继承 文字+图片+代码 超详细解刨
1. 基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。2. 基类private成员在派生类中是不能被访问,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected。可以看出保护成员限定符是因继承才出现的。3. 实际上面的表格我们进行一下总结会发现,基类的私有成员在子类都是不可见。基类的其他。原创 2023-06-01 13:48:07 · 982 阅读 · 17 评论