C++
文章平均质量分 79
C++学习
DanteIoVeYou
imdanteking@gmail.com
展开
-
【C++11】lambda表达式
C++11新特性:lambda表达式原创 2022-04-04 23:36:36 · 1203 阅读 · 21 评论 -
【C++11】深挖列表初始化、initializer_list
C++11列表初始化、initializer_list类原创 2022-03-31 12:53:08 · 2372 阅读 · 7 评论 -
【C++】非类型模板参数
C++非类型模板参数原创 2022-03-17 20:09:09 · 1633 阅读 · 4 评论 -
【C++】继承
C++面向对象三大特性之继承原创 2022-03-10 22:30:30 · 1056 阅读 · 24 评论 -
【C++】STL容器适配器之stack&&queue
STL之stack、queue的介绍及模拟实现原创 2022-03-04 06:30:00 · 762 阅读 · 14 评论 -
【C++】谈谈初始化列表
C++初始化列表原创 2022-03-02 00:50:17 · 455 阅读 · 11 评论 -
【C++】浅谈类的static成员
static成员变量static成员函数原创 2022-03-02 00:25:52 · 404 阅读 · 3 评论 -
【C++】STL容器之list
stl之list的详解和模拟实现原创 2022-02-08 16:14:44 · 1304 阅读 · 10 评论 -
【C++】详谈explicit关键字背后的隐式类型转换和编译器优化
开场白本来想总结一下explicit关键字的用法,结果看了官方文档发现能给拷贝构造加explicit,我就去试了试试了之后,又发现了两个大坑:隐式类型转换和编译器优化,本来我以为我很久以前就理解了这俩概念,但是一系列实验结果表明这并不是那么简单这两个坑折磨得我欲仙欲死首先贴一下我们一直说的编译器优化是什么,官网的定义编译器优化学名叫:拷贝省略Copy elisionOmits copy and move (since C++11) constructors, resulting in zer原创 2022-02-07 21:19:46 · 970 阅读 · 13 评论 -
【C++】STL容器之vector
前言C++引入了面向对象的思想,相比于C语言,一个类能更好地对一些数据结构进行管理和操作。在C语言中,我们使用定长数组和malloc出来的动态数组来维护一段连续的相同类型数据的集合在C++中,基于面向对象的思想,用来管理空间上连续的同类型数据集合的类便应运而生,从本质上讲,vector类就是一个被封装了的大小可变数组的序列容器目录1.vector的简介2.vector的常见接口及模拟实现 2.1 vector类对象的常见构造 &原创 2022-02-04 08:15:00 · 1367 阅读 · 10 评论 -
【C++】STL容器之string
前言C++引入了面向对象的思想,相比于C语言,一个类能更好地对一些数据结构进行管理和操作。在C语言中,我们使用字符数组和string.h中的库函数来维护一个字符串,数据与方法分离不说,由于底层的空间是自己维护的,稍不留神就可能造成越界在C++中,基于面向对象的思想,用来管理字符串的string类便应运而生,从本质上讲,string类就是一个被封装了的字符数组目录1.string的简介2.string的常见接口及模拟实现 2.1 string类对象原创 2022-02-01 14:14:23 · 1786 阅读 · 9 评论 -
【C++】浅谈模板
1.前言在学习C语言的时候,我们实现了一个void Swap (int* x, int* y)函数用以交换两个int型整数,但是由此却引发了这样一个问题:当我们想要交换两个double类型的数时,先前写的Swap就无能为力了,因为先前的Swap只能交换int型数据,于是乎我们不得不重写Swap2,Swap3…到了学习C++之时,我们似乎有了解决方案:函数重载。这时的我们可以给所有的交换函数都起一个名字:Swap,然后单纯地改变参数类型就能实现函数的重载。可是,想要重载一个别的类型的Swap,我们就得CV原创 2022-01-30 16:44:51 · 691 阅读 · 21 评论 -
【C++】动态内存管理
1.前言1.1预备知识对于进程地址空间有一定的了解了解C语言的malloc/calloc/realloc/free的用法,功能1.2目录new与deleteoperator new与operator delete函数(new/delete的底层实现)malloc/free与new/delete的区别operator new与operator delete的类专属重载异常捕获定位new2.new与deleteC++较C语言新增了new与delete两个关键字new与dele原创 2022-01-16 20:32:13 · 200 阅读 · 5 评论 -
【C++】const成员函数
1.用法我们想要保证对象被实例化出来之后,在其成员函数中不能修改成员变量的值,我们就要声明const成员函数本质上来讲,const成员函数是用const来修饰隐含的this指针假设我们的Date类有一个打印出日期类的成员函数,我们想让这个函数无法修改对象的私有成员变量,使用const的语法如下:void Print() const{ //实现}这样写,就是在隐含的this指针之前加了一个constvoid Print(const Date* this){ //伪代码,用于说明才把this指原创 2022-01-15 23:49:07 · 1154 阅读 · 0 评论 -
【C++】运算符重载、友元------类和对象练习------日期类的实现
1.前言阅读本文的预备知识:构造函数、拷贝构造、拷贝构造类访问限定符类的实例化this指针引用返回目录:运算符重载友元函数、友元类、内部类日期类在我们快速入门了C++以后,首当其冲的便是学习C++基于面向对象的特性。我们将事物抽象成一个类,再通过 “类” 这张图纸实例化出一个个具体的对象,在封装的特点下管理对象的数据与方法2.运算符重载我们的加减乘除等算术运算符和> < ==等关系运算符以及 = 赋值运算符天然能够操作int、float等内置类型数据;但是对于原创 2022-01-15 00:26:35 · 2612 阅读 · 9 评论 -
【C++】详谈malloc/free和new/delete的区别
new = 全局operator new开内存(先) + 构造函数(后)operator new = malloc ,若开辟空间失败,会抛异常delete = 析构函数(先) + 全局operator delete释放内存(后)operator delete = free这体现了封装operator new/delete 不是运算符重载,是调用全局函数,而函数里面包含了malloc/free此外,operator new和operator delete能够进行专属类重载,也就是说,.原创 2021-11-14 13:34:52 · 963 阅读 · 8 评论 -
【C++】C++快速入门
目录1.前言2.C++关键字3.命名空间1.前言本文主要对于C++的一些特性进行简单介绍,旨在对于C++基于C语言添加的功能及特性进行快速入门2.C++关键字相比于C语言的32个关键字,C++的关键字加至63个,很大程度上拓展了C语言的功能。3.命名空间在C/C++中,变量,函数和类都是大量存在的。这些变量,函数,类都存在于全局作用域中,可能导致很多冲突。举个例子,我们的命名的变量跟库里的变量名,函数名冲突了。就会导致重命名的问题。在实际大型项目的开发中,还存在同事之间定义的变量/函数/类原创 2021-09-28 17:44:40 · 1226 阅读 · 25 评论