
C++
文章平均质量分 96
不如小布.
知行合一.
展开
-
C++多态
前面已经学习了有关继承的内容,接下来将会讲解C++最后的、也是较难的一个特性——多态。需要声明的,本节内容中的代码及解释都是在vs2019下的x86程序中,涉及的指针都是4bytes。如果要其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。原创 2024-02-28 17:13:27 · 987 阅读 · 9 评论 -
C++特殊类的设计
有时间在特定场景,我们需要特殊从类来处理事务,比如这里类只能有一个实例化对象。其中的单例模式是重点,很多面试都会提问到,要做到手撕单例模式。如果大家发现有什么错误的地方或者有什么问题,可以私信或者评论区指出喔。我会继续深入学习C++,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!原创 2024-06-05 17:15:28 · 692 阅读 · 7 评论 -
C++智能指针
智能指针也是C++11新增的语法,它主要是用来处理数据释放的问题。什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放// 2.异常安全问题Func();原创 2024-05-21 16:52:23 · 957 阅读 · 4 评论 -
C++异常
我们平时写代码可能都会出很多的错误,那么有什么方法可以帮助我们找到这些错误呢?实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。异常总体而言,利大于弊,所以工程中我们还是鼓励使用异常的。另外OO的语言基本都是用异常处理错误,这也可以看出这是大势所趋。如果大家发现有什么错误的地方或者有什么问题,可以私信或者评论区指出喔。原创 2024-05-13 21:02:16 · 916 阅读 · 8 评论 -
C++11
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。原创 2024-04-30 16:29:25 · 796 阅读 · 5 评论 -
STL篇五:map和set
map和set的底层是红黑树,希望大家看完前一篇文章后再来看本章内容。set的文档介绍set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。原创 2024-04-06 17:05:53 · 1236 阅读 · 3 评论 -
C++继承
C++相比较C增加了许多东西,最主要是针对类和对象部分,今天就让我们来进一步学习类和对象中更深层次的内容吧。继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。原创 2024-02-28 17:12:04 · 954 阅读 · 3 评论 -
STL篇四:stack和queue
栈和队列的实现相交于之前的内容简单很多,因为它的实现可以复用其他的容器。stack的文档介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。原创 2024-02-19 18:01:41 · 1148 阅读 · 1 评论 -
C++类和对象(万字超详细讲解!!!)
C语言是面向过程进行编程,但是在现实生活中,都是一个一个的物体或对象来进行交互,因此C++就新加了面向对象进行编程,它更加符合现实生活中的场景。原创 2024-01-10 17:41:13 · 1400 阅读 · 9 评论 -
C++模板进阶
前面我们只是简单的了解了什么是模板以及它的使用,本章内容我们将进一步学习有关模板的内容。一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2024-02-19 18:04:06 · 961 阅读 · 5 评论 -
STL篇三:list
前面学习的string与vector都是线性结构,本节介绍的list是我们遇到的第一个链式结构,此部分的迭代器封装比较难以理解,希望大家都能学有所成,学有所获。list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。原创 2024-02-04 14:25:29 · 1089 阅读 · 10 评论 -
STL篇二:vector
。vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。原创 2024-02-04 14:22:59 · 1121 阅读 · 2 评论 -
STL篇一:string
可能很多人都不太清楚STL是什么,它是用来干什么的,大家在看完这篇文章之后相信能有个大概的了解,目前我只能说STL是C++的中十分重要的部分之一,是大家学习C++必须掌握的部分。原创 2024-01-13 19:55:52 · 1286 阅读 · 10 评论 -
C++模板初阶
我们会发现这会先的十分冗余,那么有没有什么方便的方式来实现这个功能呢?因此C++就引入了应对这种情况的方法 ------模板。原创 2024-01-13 19:51:57 · 1065 阅读 · 5 评论 -
C/C++动态内存管理
在C语言中有动态内存管理,自然在C++中也有,我们也只知道C++是兼容C语言的。但是C++中新增了类和对象,继续采用之前的动态开辟函数能不能有效的运用在类和对象这一部分呢?让我们来看看吧!原创 2024-01-10 17:45:18 · 1123 阅读 · 11 评论 -
C++入门基础(万字详解!!!)
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。原创 2023-08-15 11:56:51 · 50326 阅读 · 69 评论