![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
开启C++之路
文章平均质量分 96
这里分享学习C++的一些笔记和经验
zxctscl
万事试一试
展开
-
【C++】多态
不同的人做同一件事情,多种形态,结果是不一样的。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(要求三同,三同指的是:函数名、参数、返回值)public:virtual void BuyTicket() { cout << "Person->买票-全价" << endl;原创 2024-04-23 15:35:28 · 1903 阅读 · 47 评论 -
【C++】继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。举个例子:在学校里面要定义教师类和学生类还有宿管、保安这些类,他们里面都有的成员变量写在了多个类里面就会显得代码冗余,此时就可以用到继承。原创 2024-04-18 08:34:11 · 1340 阅读 · 6 评论 -
【C++】priority_queue&&priority_queue模拟实现
优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。原创 2024-04-17 08:39:16 · 1278 阅读 · 12 评论 -
【C++】stack和queue
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作push_back:尾部插入元素操作。原创 2024-04-05 20:50:13 · 1135 阅读 · 17 评论 -
【C++】list模拟实现
在前面一篇博客中分享了list的相关介绍【C++】list介绍,这次来模拟实现一下list。原创 2024-04-02 16:08:05 · 2137 阅读 · 38 评论 -
【C++】list介绍
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。原创 2024-04-01 09:38:38 · 1794 阅读 · 32 评论 -
【C++】vector模拟实现
在之前已经介绍了vector【C++】vector介绍,这次来看看它的模拟实现。原创 2024-03-29 11:47:00 · 1251 阅读 · 23 评论 -
【C++】vector介绍
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。原创 2024-03-26 09:56:21 · 1461 阅读 · 22 评论 -
【C++】string类模拟实现
在之前的两篇博客中已经分享关于string类的使用,有需要可以点击链接看看【C++】string类初步介绍和链接:【C++】string进一步介绍,这次要分享用C++代码来实现string类。原创 2024-03-22 20:23:55 · 1817 阅读 · 48 评论 -
【C++】了解一下编码
看到string里面还有Template instantiations:string其实是,它还是一个模板。再看看wstring:来看看什么是wchar_t?char ch1;编码就是文字在计算机的存储和表示。原创 2024-03-16 21:52:29 · 1904 阅读 · 34 评论 -
【C++】string进一步介绍
在之前的博客中初步介绍了string一下:【C++】string类初步介绍,那么这次来看看它的实现。原创 2024-03-13 21:05:56 · 2289 阅读 · 45 评论 -
【C++】string类初步介绍
C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可。如果len这个参数给的超过了这个字符串从pos位置开始给的长度,举个例子:从pos位置开始,剩余的长度是10,那么它超过了10,有多少就给多少,直接取到结尾。无符号整形这里虽然存的是-1,但底层存的是补码,无符号整形原码和补码是一样的,这里反而变成了整形的最大值,也就是2^32-1。链表不会用下标访问。原创 2024-03-12 17:23:21 · 1200 阅读 · 14 评论 -
【C++】了解一下STL
标准模板库是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL是C++标准库的一部分,像之前的iostream也是标椎库的一部分,不能任务STL里面包含iostream。它们的关系是同级的。原创 2024-03-11 08:00:42 · 1070 阅读 · 17 评论 -
【C++】C++模板基础知识篇
模板有多个参数时,用“,”分隔。class 类模板名// 类内成员定义public://...private:T* _a;int _top;模板和typedef有什么区别?如果typedef能够解决像栈队列这些数据结构的问题,C语言为什么不供,就是语法不好用。真正解决不了的是给栈里面数据类型不同的时候该怎么做?原创 2024-03-08 16:09:16 · 1497 阅读 · 18 评论 -
【C++】C/C++内存管理详解
在之前的C语言中就有提到动态内存管理【C语言】动态内存管理,那么在C++中又是怎么样的呢?话不多说,正文开始。与c语言相比较的动态内存管理相比较:1、用法上,变简洁了2、可以控制初始化// new 1个int对象,初始化成10//这里new 10个int对象,没写完默认用0初始化3、自定义类型,开空间+构造函数在之间c语言中我们写数据结构的节点,得写一个创建节点的函数CreateListNodeint _val;int _val;{}原创 2024-03-07 16:56:45 · 1609 阅读 · 25 评论 -
【C++】类和对象终篇
在上一篇博客中提到了类和对象中的构造函数与static成员【C++】类和对象之初始化列表与static成员,接下来一起看看类和对象中的友元。原创 2024-03-05 17:19:31 · 1098 阅读 · 20 评论 -
【C++】const成员
在之前已经已经分享过了关于【C++】类和对象之常引用与运算符重载,这次分享的有关const的内容,话不多说,正文开始。原创 2024-03-02 23:29:06 · 906 阅读 · 3 评论 -
【C++】类和对象之赋值运算符重载
在前面的博客中提到了拷贝构造:【C++】类和对象之拷贝构造函数篇,和 运算符重载【C++】类和对象之常引用与运算符重载,接下来继续来看赋值运算符重载中的赋值运算符重载。原创 2024-02-28 17:12:52 · 797 阅读 · 18 评论 -
【C++】类和对象之常引用与运算符重载
在之前的文章中提到了常引用,再来看运算符重载之前,先来看看常引用的使用。原创 2024-02-27 21:05:21 · 712 阅读 · 4 评论 -
【C++】类和对象之拷贝构造函数篇
在前面学习了6个默认成员函数中的构造函数和析构函数【C++】构造函数和析构函数详解,接下来继续往后看拷贝构造函数。原创 2024-02-24 23:30:35 · 753 阅读 · 14 评论 -
【C++】构造函数和析构函数详解
构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,以保证每个数据成员都有 一个合适的初始值,并且在对象整个生命周期内只调用一次。对于Date类,可以通过 Init 公有方法给对象设置日期,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。原创 2024-02-23 23:26:25 · 1138 阅读 · 11 评论 -
【C++】引用与内联
在前面的【C++】C++入门(一)和【C++】C++入门(二)中已经分享了关于C++的一些基础知识,这次分享的是与引用有关的一些笔记。原创 2024-02-08 21:26:09 · 865 阅读 · 15 评论 -
【C++】初识类和对象
/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。int _month;int _day;类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。原创 2024-01-27 21:34:39 · 955 阅读 · 13 评论 -
【C++】C++入门(二)
在前面一篇文章中简单介绍了一些关于c++的语法知识,有需要的可以点这个链接【C++】C++入门(一)。继续分享有关C++的基础知识。原创 2024-02-07 16:40:35 · 1064 阅读 · 9 评论 -
【C++】C++入门(一)
C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。来为学习C++类和对象打下基础。定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。int x = 0;int x = 0;int main()编译器用一个变量或者函数的时候会先进行搜索,第一步搜索的是当前局部域;第二步是全局域;还有第三步如果指定了,直接就从指定域搜索。原创 2024-01-23 23:31:32 · 1205 阅读 · 20 评论 -
【C++】入门C++前需要了解的小知识
今天开始准备步入C++的大门,那么学习之前得先了解一下它的发展历史,和知道学好这门课程的重要性。原创 2024-01-17 22:08:02 · 1282 阅读 · 24 评论