C++
文章平均质量分 88
C++学习过程笔记整理~更新中
mooridy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++ | 高频手撕整理(1) —— strstr,memcpy,memmove函数模拟实现
关注我🌹,和我一起学习更多计算机的知识🔝🔝🔝。原创 2025-04-26 17:06:20 · 666 阅读 · 0 评论 -
c++11 | 细说智能指针
智能指针是 C++ 中一种用于管理动态内存的机制。它提供了一种更安全、更方便的方式来处理对象的生命周期,自动释放不再需要的内存,从而避免内存泄漏和悬空指针等问题。原创 2025-03-24 23:18:00 · 771 阅读 · 0 评论 -
C++疑难杂症 | 切片问题
对象切片(Object Slicing)是 C++ 中一个重要的概念,当一个派生类对象被赋值给一个基类对象时,只有基类部分的数据会被复制,而派生类特有的数据成员会被“切掉”,这可能导致意外的行为和数据丢失。原创 2024-12-25 23:19:28 · 470 阅读 · 0 评论 -
C++11|std::move和std::forward的区别
std::move和是C++11中引入的两个模板函数,它们在C++的类型推导和完美转发中扮演着重要的角色。原创 2024-11-05 21:37:39 · 704 阅读 · 0 评论 -
C++进阶|多态知识点详解及经典面试题总结
(2)然后进入B类的构造函数的函数体中调用test函数,由于B中无test函数只能去父类A中调用,在A类中的test函数体中调用func函数,这个时候因为派生类的初始化列表已经走完了,虚表指针也形成了,并且func被子类重写由this指针也就是A*父类指针调用func满足多态,所以在B类中的func中先让mval++变成1然后打印1。下⾯的代码我们可以看到,如果~A(),不加virtual,那么delete p2时只调⽤的A的析构函数,没有调⽤B的析构函数,就会导致内存泄漏问题,因为~B()中在释放资源。原创 2024-09-21 15:25:53 · 1314 阅读 · 0 评论 -
初识C++|stack、queue、priority_queue的使用和模拟实现
仿函数是通过定义一个类并在其中重载()操作符来实现的。这个操作符可以接受任意数量和类型的参数(根据需求),并可以返回一个值。// 定义仿函数public:// 重载()操作符Add add;// 创建仿函数对象// 像函数一样调用仿函数对象return 0;原创 2024-09-10 09:32:27 · 926 阅读 · 0 评论 -
C++进阶|继承
🍬🧁1. 继承的概念及定义1.1 继承的概念是⾯向对象程序设计使代码可以的最重要的手段,它允许我们在,这样产生新的类,称。没有继承之前我们就需要设计了两个类Student和Teacher,Student和Teacher都有姓名/地址/ 电话/年龄等成员变量,都有identity⾝份认证的成员函数,设计到两个类⾥⾯就是冗余的。当然他们 也有⼀些不同的成员变量和函数,⽐如⽼师独有成员变量是职称,学生的独有成员变量是学号;学生的独有成员函数是学习,⽼师的独有成员函数是授课。原创 2024-09-10 09:31:55 · 1325 阅读 · 0 评论 -
初识C++|list类的使用及模拟实现
list底层——带头双向循环链表。原创 2024-08-30 11:25:06 · 971 阅读 · 0 评论 -
初识C++|vector类的使用及模拟实现
可以存string。原创 2024-08-13 10:25:08 · 863 阅读 · 0 评论 -
初识C++|string类的使用及模拟实现
string原型最基本的string类由于编码方式不同,又衍生出不同的string类由此可见,string是一个模板string类——管理字符串的类,是用字符的顺序表实现的在使用string类时,必须包含以及;注意不是!原创 2024-08-08 17:47:02 · 457 阅读 · 0 评论 -
初识C++|模板初阶
通过实参a1将T推演为int,通过实参d1将T推演为double类型,但模板参数列表中只有。注:如果类型不匹配,编译器会尝试进行隐式类型转换,如果无法转换成功编译器将会报错。一个T,编译器无法确定此处到底该将T确定为int 或者 double类型而报错。该语句不能通过编译,因为在编译期间,当编译器看到该实例化时,需要推演其实参类型。所以当一个匹配既没有非模板函数,也没有函数模板可以匹配到的时候,会。,是编译器用使用方式产生特定具体类型函数的模具。1. 重载的函数仅仅是类型不同,,对于模板函数的使用,原创 2024-07-19 11:24:18 · 1021 阅读 · 0 评论 -
初识C++|类与对象(下)
因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。内部类本质也是⼀种封装,当A类跟B类紧密关联,A类实现出来主要就是给B类使⽤,那么可以考 虑把A类设计为B的内部类,如果放到private/protected位置,那么A类就是B类的专属内部类,其他地⽅都⽤不了。的,不具有交换性,⽐如A类是B类的友元,但是B类不是A类的友元。,如果A是B的友元, B是C的友元,但是A不是B的友元。,不属于某个具体的对象,不存在对象中,存放在。原创 2024-07-18 21:53:10 · 1021 阅读 · 0 评论 -
C/C++内存管理
如果 malloc申请空间成功就直接返回,否则执行用户提供的空间不足应对措施,如果用户提供该措施 就继续申请,否则就抛异常。在申请空间后会调用构造函数完成对象的初始化,delete在释放空间前会调用析构函数完成空间中资源的清理释放。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5. malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需。类似,但它会分配一块连续的内存空间,并且将分配的内存初始化为零。原创 2024-07-18 20:19:32 · 768 阅读 · 1 评论 -
初识C++|类与对象(上)
如果嵌套了结构体的情况,嵌套的结构体对⻬到⾃⼰的最⼤对⻬数的整数倍处,结构体的整体⼤⼩ 就是所有最⼤对⻬数(含嵌套结构体的对⻬数)的整数倍。的⽅式,⽤类将对象的属性与⽅法结合在⼀块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的⽤⼾使⽤。类是对象进⾏⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,类定义了⼀个新的作⽤域,类的所有成员都在类的作⽤域中,在类体外定义成员时,需要使⽤。编译器编译后,类的成员函数默认都会在形参第⼀个位置,增加⼀个当前类类型的指针,叫做。原创 2024-07-16 11:32:18 · 745 阅读 · 1 评论 -
初识C++|类和对象(中)——类的默认成员函数
要求调⽤这个成员变量的默认构造函数初始化。如果这个成员变量,没有默认构造函数,那么就会报错。说明:C++把类型分成内置类型(基本类型)和⾃定义类型。内置类型就是语⾔提供的原⽣数据类型,如:int/char/double/指针等,⾃定义类型就是我们使⽤class/struct等关键字⾃⼰定义的类型。原创 2024-07-16 11:35:50 · 974 阅读 · 1 评论 -
初识C++ | 基本介绍、命名空间、输入输出、缺省函数、函数重载、引用、内联函数、nullptr
1979年,当时的正在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作。⾯对项⽬中复杂的软件开 发任务,特别是模拟和操作系统的开发⼯作,他感受到了现有语⾔(如C语⾔)在表达能⼒、可维护性 和可扩展性⽅⾯的不⾜。于是,牛逼的祖师爷决定自己创造语言!1983年,Bjarne Stroustrup在C语⾔的基础上添加了⾯向对象编程的特性,设计出了C++语⾔的雏形, 此时的C++已经有了类、封装、继承等核⼼概念,为后来的⾯向对象编程奠定了基础。这⼀年该语⾔被正式命名为C++。重点。原创 2024-07-11 17:00:43 · 845 阅读 · 0 评论
分享