CPP语法
文章平均质量分 93
你好呀我是裤裤
你好呀,我是裤裤
展开
-
多态对象的内存结构
这篇文章我们通过具体的案例来谈一谈多态的具体内存结构:class Base{public: virtual void Func1() { cout << "Func1()" << endl; } virtual void Func2() { cout << "Func2()" << endl; } void Func3() { cout << "Func3()" << endl; }privat原创 2024-09-22 21:23:21 · 135 阅读 · 0 评论 -
C++面向对象:多态!
实现多态需要借助虚表(虚表数表),构成虚表需要虚函数(virtual修饰的函数)。除此之外,我们还需要虚表指针定位函数,并调用。抽象类即有纯虚函数的类。那么,什么是纯虚函数呢?我们只需要在虚函数的函数头之后加一个=0,即可将虚函数变为纯虚函数。纯虚函数也可以与普通虚函数构成重写,也就是能够实现多态。但是,包含纯虚函数的类是不可以实例化对象的,这点我们后续会谈到。因此,只要类中含有纯虚函数,那么这个类就是一个抽象类。cout原创 2024-09-22 21:11:23 · 657 阅读 · 0 评论 -
C++STL详解(七)——Stack和Queue
第一个构造函数:使用默认的适配器定义栈第二个构造函数:使用特定的适配器定义栈如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。使用默认的适配器定义队列。使用特定的适配器定义队列。如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。原创 2024-08-17 17:33:48 · 767 阅读 · 11 评论 -
C++STL详解(六)——list类的具体实现
list的迭代器类,实际上只是对结点的指针进行了封装,并对其各个操作符进行了重载,使得结点指针的各种行为看起来和普通指针一样。原创 2024-08-14 23:39:14 · 885 阅读 · 0 评论 -
C++STL详解(四)——vector类的具体实现
在上篇文章中,我们已经学习了vector的具体接口使用方法,在本篇文章中,我们将学习实现一个vector容器。原创 2024-08-12 20:35:51 · 713 阅读 · 0 评论 -
C++STL详解(五)——list类的接口详解
list容器的底层是双向循环带头链表,在CPP中,我们对双向循环带头链表进行了一定程度的封装。双向链表在这里我们要学习六种list的构造方式。构造1:构造一个某类型容器构造2:构造一个含有一个值的某类型容器//构造只含有一个数值3的结点的list容器构造3:构造一个含有n个值的某类型容器//构造含有三个数值都是5的结点的list容器构造4:复制某个容器构造该容器的复制品//拷贝构造构造5:使用某个迭代器区间进行构造//迭代器区间初始化构造6:使用列表构造一个某类型容器//使用列表构造。原创 2024-07-25 23:48:50 · 924 阅读 · 11 评论 -
C++STL详解(三)——vector类的接口详解
vector容器的底层是顺序表,在CPP中,我们对顺序表进行了一定程度的封装。顺序表。原创 2024-07-24 23:47:05 · 1084 阅读 · 51 评论 -
C++STL详解(二)——string类的模拟实现
首先,我们为了防止命名冲突,我们需要在自己的命名空间内实现string类。原创 2024-07-19 18:17:56 · 805 阅读 · 41 评论 -
C++STL详解(一)——string类的接口详解(下)
在这里需要大家注意的是,capacity表示开辟的空间大小,而size求出的是开辟的空间内的元素个数。在用>>进行输入操作时,当>>读取到空格便会停止读取,基于此,我们将不能用>>将一串含有空格的字符串读入到string对象中。另外,值得一提的是,如果resize给出的值大于capacity的值的话,会调用扩容函数。但是,我们发现了一个问题,如果我们输入的字符串中有空格的话 则空格后的字符会进入缓冲区。string元素的访问有两种方式,我们可以通过重载的[]访问,也可以通过at函数访问。原创 2024-07-23 21:03:36 · 672 阅读 · 38 评论 -
C++STL详解(一)——String接口详解(上)!!!
string类是CPP中STL中处理字符串的一个类,它给我们提供了丰富的接口以供于我们使用。虽然我们传统的C库中有相关的函数以供于我们使用,但是由于操作起来比较麻烦,因此CPP中实现了string类。string类所在的头文件为原创 2024-07-23 16:42:58 · 426 阅读 · 21 评论 -
CPP入门:日期类的构建
这里需要注意的是,由于这个函数运行结束之后,tmp会先被销毁掉,再进行返回,因此我们如果返回值为引用的话,则会出错。之后我们一直减去当月的天数,并让月份加1,如果月份为13,则年份加1,月份赋为1。在日期类中,我们应当是已知每个月份有多少天的,因此我们还需要在日期内中写一个成员函数来获得当月的天数。后置++是先使用后++的。此外,我们的日期类还应当能够实现对日期的打印、对日期类的相关计算、输入输出的重载等成员函数。与实现加等类似的是,这里我们也是类似的步骤,通过一个循环来不断的更新年月日。原创 2024-07-02 22:36:45 · 1173 阅读 · 48 评论 -
CPP初级:模板的运用!
哇去,这篇文章居然讲透了模板?原创 2024-06-10 01:22:44 · 876 阅读 · 9 评论 -
CPP初阶:CPP的内存管理模式
我靠,哥,这篇文章看下来我彻底通透了!原创 2024-06-09 19:01:40 · 698 阅读 · 3 评论 -
C++的第一道门坎:类与对象(三)
一篇文章醍醐灌顶,彻底搞明白类与对象!!!原创 2024-05-30 20:35:55 · 1146 阅读 · 9 评论 -
C++的第一道门坎:类与对象(二)
娃趣,这篇文章竟然彻底讲透了类与对象!原创 2024-05-28 21:20:47 · 1499 阅读 · 23 评论 -
C++的第一道门坎:类与对象(一)
哇趣?类与对象还能介么讲?速进!一篇文章醍醐灌顶!原创 2024-05-27 22:02:21 · 2151 阅读 · 30 评论 -
C++入门:从C语言到C++的过渡(3)
以inline修饰的函数被叫做内联函数,编译时C++的编译器会在调用内联函数的地方展开函数定义,没有建立栈帧的开销,内联函数能够提升程序运行的效率。在C++中,随着程序越来越复杂,程序所用的类型也越来越复杂。为了简化代码,增加代码的可读性,C++11引入了自动类型推断auto。在C语言中,auto修饰的变量,是具有自动存储器的局部变量。auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。原创 2024-05-25 16:58:38 · 819 阅读 · 2 评论 -
C++入门:从C语言到C++的过渡(2)
函数重载是函数的一种特殊情况,C++允许在同一作用域中声明同名函数,这些同名函数的形参列表(形参个数或形参类型或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。原创 2024-05-25 14:35:48 · 978 阅读 · 5 评论 -
C++入门:从C语言到C++的过渡(1)
定义命名空间,需要用的namaspace关键字,后面跟命名空间的名字,然后接一对花括号{},花括号中即为命名空间的成员。//duanku即命名空间的名字,一般开发中是用项目名字做命名空间名那么,命名空间中可以定义什么呢?命名空间中可以定义变量/函数/类型。//变量int N=1;int Add(int left, int right)//函数struct Node//结构体-->类型int val}duan;学习了命名空间的定义了之后,就可以开始学习如何使用命名空间了。原创 2024-05-24 17:25:39 · 1093 阅读 · 5 评论