![](https://img-blog.csdnimg.cn/direct/30adfa653f64402eb6832330f914ce77.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 97
C++相关知识总结
炸掉地球
已有的事,后必再有。已行的事,后必再行。
展开
-
【C++】vector的底层原理及实现
我们的目的不是去模拟实现vector,而是更深入地理解vector的底层原理,更好地提升自己。本篇将简单地模拟实现vector,更好地理解它的构造和原理。在C++的STL中,vector是最常用的容器之一,底层是一段连续的线性内存空间(泛型的动态类型顺序表),可以支持随机访问。vector可以存储各种类型,int、char、string等,所以它是一种类模板,可以套用各种类型。原创 2024-07-03 16:56:28 · 1206 阅读 · 21 评论 -
【C++】string的底层原理及实现
string与C语言中的char类型字符串的一个较大的区别就是:char类型的字符串是以\0为结束符,遇到\0就停止;而string是以_size来判断是否结束,遇到\0并不会停止。 这点很重要,一定要弄清楚!原创 2024-07-02 15:58:42 · 855 阅读 · 14 评论 -
【C++】string基本用法(常用接口介绍)
string是表示字符串的字符串类。它提供了一系列成员函数和操作符,使得字符串的操作更加方便和灵活。它位于标准命名空间std下,因此通常需要使用语句或者前缀来引用。string是C++的STL(standard template libaray-标准模板库)的容器之一。本篇,我们主要介绍string的基本用法。所有接口用法都可以在cplusplus参考手册中查阅。下面我们主要介绍string的一些常用接口。string底层实际是basic_string类模板的实例化,是表示字符串类型的模板类。原创 2024-06-30 22:23:58 · 1019 阅读 · 22 评论 -
【C++】动态内存管理new和delete
对于内置类型,malloc/free与new/delete区别不大,真正的区别在于自定义类型。malloc/free与new/delete最大的区别申请自定义类型对象时,malloc是纯粹的开辟空间,不会初始化;而new在申请空间后会调用构造函数完成对象的初始化,delete在释放空间前会调用析构函数完成空间中资源的清理。对于需要资源申请的自定义类型更能体现其优势,以链表为例new会先开辟空间再调用构造函数初始化,delete会先调用析构函数清理资源再释放空间,原创 2024-06-28 16:23:16 · 1090 阅读 · 13 评论 -
【C++】模板初阶
模板是一种C++特性,允许创建可重复利用的代码,无需编写多个版本。通过模板可以用来处理数据类型不同而实现代码和功能基本相同的程序。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。之前我们学习过函数重载,函数重载常用来处理功能类似而数据类型不同的问题。针对不同类型的对象,我们可以写多个函数重载来满足需求,但是这样不仅麻烦而且效率低。原创 2024-06-29 08:52:56 · 1000 阅读 · 9 评论 -
【C++】运算符重载
但是我们如果重载成全局函数,就需要类成员变量是公有属性,因为类外无法访问类的私有成员。但是这样就会破坏封装性。 因此,为了保证封装性,我们一般将运算符重载为类的友元函数或类的成员函数。原创 2024-06-26 23:25:33 · 968 阅读 · 9 评论 -
【C++】初始化列表、匿名对象、static成员、友元、内部类
实际上,构造函数的函数体内,并不是对 对象 初始化的地方,而是对成员变量进行赋值。因为初始化只能初始化一次,而构造函数体内可以多次赋值。真正进行初始化的地方是初始化列表(在创建类变量时,初始化列表将成员变量直接初始化为括号内的表达式值)原创 2024-06-23 17:03:28 · 1101 阅读 · 8 评论 -
【C++】类的六个默认成员函数
C++类的六个默认构造函数。原创 2024-06-21 16:54:50 · 752 阅读 · 12 评论 -
【C++】类和对象的引入
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。比如洗衣机洗衣服的过程:总共四个对象:人、衣服、洗衣液、洗衣机。面向过程:主要是人将衣服放进洗衣机,再倒入洗衣液,启动洗衣机,然后洗衣机完成洗衣功能这些过程。面向对象:整个过程是人、衣服、洗衣液、洗衣机这四个对象之间交互完成的。主要关注对象和对象之间的关系和交互。class为定义类的关键字。原创 2024-06-11 17:00:00 · 2049 阅读 · 6 评论 -
【C++】入门基础
C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。本篇大致介绍C++如何填补C语言留下的坑,以及C++是如何对C语言设计不合理的地方进行优化的,为后续类和对象学习打下基础。C++是向下兼容C语言的,所以C++文件也可以使用C语言代码。原创 2024-06-09 17:18:45 · 1496 阅读 · 12 评论