
C++基础知识
文章平均质量分 85
CR0712
welcome to C
展开
-
C++11与thread相关使用(纯代码)
【代码】C++11与thread相关使用(纯代码)原创 2024-03-26 21:15:27 · 329 阅读 · 0 评论 -
C++中特殊类的设计与单例模式的简易实现
对于这种特殊类的设计我们一般都是优先考虑私有构造函数。然后对于一些特殊要求就直接通过静态成员函数的实现来完成。这里选择禁掉拷贝构造函数和拷贝函数是为了防止将已创建的对象去拷贝构造新的对象。原创 2024-01-18 20:10:14 · 1117 阅读 · 0 评论 -
异常和智能指针
智能指针是一种C++语言中用于管理动态内存的工具,,从而。智能指针可以跟踪指向的对象的,并在需要时被引用的内存,这极大地提高了内存管理的安全性和便利性。:独占型智能指针,表示它所指向的对象只能被一个指针拥有(即不能进行赋值),一旦该指针销毁,它所指向的对象也会被销毁。:共享型智能指针,允许多个指针共同管理同一个对象,通过引用计数来跟踪对象的引用次数,当引用计数为0时自动释放对象内存。原创 2023-12-25 22:47:29 · 1028 阅读 · 0 评论 -
右值引用和移动语义(C++11)
左值是表示数据的表达式(如变量名或解引用的指针),也可能在赋值符号右边,具有地址的、可寻址的表达式才是左值。右值是一个表达式,如:字面常量、表达式返回值,函数返回值等等,且右值不能出现在赋值符号左边不能进行取地址才是右值。原创 2023-12-03 12:10:00 · 862 阅读 · 1 评论 -
C++多态的认识与理解
多态其实就是同一操作在不同的对象上可以有不同的实现方式。原创 2025-01-18 00:37:37 · 969 阅读 · 0 评论 -
C++中的菱形继承问题
学到C++时我们知道了继承但是一般都是使用单继承为主,单继承就是一个子类只能继承一个父类而多继承是指一个子类可以同时继承多个父类。原创 2023-10-18 19:31:25 · 254 阅读 · 1 评论 -
C++容器适配器的使用以及优先队列的实现
所以说一般对于类的实现时如果新旧的版本中部分旧接口还在被使用。需要保留旧的接口,改变少许不同的接口的底层实现的这种情况时就可以考虑到容器适配器。原创 2023-10-14 10:19:47 · 175 阅读 · 1 评论 -
C++中List的实现
list中const和非const迭代器封装实现以及其它原创 2023-08-16 15:02:16 · 868 阅读 · 1 评论 -
vector的模拟实现
vector是一个封装了动态大小数组的顺序容器跟任意其它类型容器一样,它能够存放各种类型的对象。以下是一些vector实现时的难点,欢迎留言!原创 2023-08-13 20:35:52 · 312 阅读 · 1 评论 -
模拟实现string类
string类的接口有很多,这里我来梳理一下自己常用的几个,并模拟实现一下可以凑合用的my_string,话不多说直接开干:原创 2023-08-11 13:36:05 · 167 阅读 · 0 评论 -
C++ 对函数模版和类模版的理解
所谓模板,实际上是建立一个通用函数或类,其类内部的类型和函数的形参类型不具体指定,用一个虚拟的类型来代表。原创 2023-08-03 18:15:32 · 293 阅读 · 0 评论 -
C++中内存的动态管理
其实new和delete操作符也不是仅仅就调用了operator new和operator delete那么简单,其实实际上还调用了类的构造函数,而delete还调用了类的析构函数(delete是先调用析构函数,再调用operator delete函数释放创建的空间)new A[N]的原理1. 调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申请2. 在申请的空间上执行N次构造函数delete[]的原理1. 在释放的原创 2023-08-02 21:42:48 · 383 阅读 · 0 评论 -
C++中的static修饰类的成员变量和成员函数
1. 静态成员为所有类对象所共享,不属于某个具体的对象,存放在静态区2. 静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明3. 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问4. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员5. 静态成员也是类的成员,受public、protected、private 访问限定符的限制原创 2023-07-30 14:11:17 · 432 阅读 · 0 评论 -
const对象不能调用其他非const成员函数,const成员函数不能调用其他非const成员,
在C语言中我们知道const关键字修饰的变量具有常量属性,简称常变量。即修饰后的变量不能再次修改,而C++中是兼容C语言的,同样具备该特性,但C++引入了引用(&)所以const的用法就更多了。我们知道引用的对象必须是个变量,不能有常属性,所以用const修饰过的对象就不能引用。原创 2023-07-29 16:40:04 · 627 阅读 · 0 评论 -
C++中对 this 指针的理解
C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。原创 2023-07-28 16:07:54 · 260 阅读 · 1 评论 -
认识C++的内联函数
可是,如果函数加了inline的话,并且声明和定义分离在两个文件中,只有定义函数的文件中能使用这个函数,声明函数的文件中却不能使用函数。我们知道,如果函数没有加inline的话。它会在编译期间进行符号汇总,在汇编期间生成符号表,最后在链接的时候进行符号表的合并,这样的话,定义函数的文件和声明函数的文件都能拿到函数的地址,也就都能使用函数了。综上所述,内联函数声明和定义分离在不同文件中的话,定义函数的文件不会将函数和函数地址放在符号表中,声明函数的文件在使用该函数时会找不到该函数,所以会发生里链接错误。原创 2023-07-22 15:57:18 · 450 阅读 · 0 评论 -
C++引用
如果函数返回时,出了函数作用域,如果返回对象还在(还没还给系统),则可以使用引用返回,如果已经还给系统了,则必须使用传值返回原创 2023-07-19 11:36:43 · 218 阅读 · 1 评论 -
为什么C++支持函数重载
C++其实和C语言经历的阶段是相同的,但是C++在这里做了优化的,在编译阶段时也是进行相同的符号表汇总,但是函数重载在C++中并不是看作相同符号名的函数,而是视作不同符号名的函数,所以这里C++是引入了。原创 2023-07-18 11:33:18 · 305 阅读 · 1 评论