![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 92
筑基.
多敲代码,多做题,多调试,多学习,多思考
展开
-
c++进阶——继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用public:protected:// 姓名// 年龄// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了Student和Teacher复用了Person的成员。原创 2024-06-10 12:03:06 · 946 阅读 · 2 评论 -
c++模板进阶
3.2 模板的分离编译。原创 2024-06-06 21:43:17 · 749 阅读 · 0 评论 -
list(二)和_stack_queue
/生成默认的构造函数class Datepublic:{}//生成默认的构造函数 class Date {public :int _year;int _month;int _day;} };//小堆 bool operator()(Date * p1 , Date * p2) {} };// 大堆,需要用户在自定义类型中提供 , PDateMore > q1。原创 2024-06-04 02:17:33 · 584 阅读 · 2 评论 -
list的模拟实现(一)
第二种方式:不同的模板参数表达的是不同的类,正如vector< int>和vector< double>表达的是两个不同的类。而当我们**直接访问结构体或联合体的成员(即不通过指针)时,我们使用点(.)**操作符。(下图pos坐标(中存储的是行和列)类似于节点中的_date),应该如下图注释所进行调用,const迭代器目标本身可以修改,指向的内容不能修改,类似const T* p。原生指针的++是连续的物理空间的++。,也可以是几个类互相搭配完成一件事情。,所以我就将节点指针封装成一个类,原创 2024-05-27 00:51:24 · 816 阅读 · 1 评论 -
vector的底层实现与模拟
注意:如果没有第二个重载的版本,当遇到特定情况时,就会发生非法的间接寻址,因为在调用构造时,编译器会选择更对自己口味的构造函数,如果没有重载第二个版本,那么v3的构造就会匹配迭代器区间的初始化,从而造成非法的间接寻址。我们需要注意的是:size()返回的是_finish-_start的值,但是_start的地址再扩容后已经发生了变化,所以我们需要用oldsize记录下扩容前的对象个数,从而避免调用size()类模板的成员函数,也可以是函数模板----(支持任意容器的迭代器区间初始化)原创 2024-05-25 00:01:23 · 983 阅读 · 0 评论 -
内存管理下及模板初阶
new的原理:1.调用operator new函数申请空间2.在申请的空间上执行构造函数,完成对象的构造delete的原理:1.在空间上执行析构函数,完成对象中资源的清理工作2.调用operator delete函数释放对象的空间new T[N]的原理1.调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申请2.在申请的空间上执行N次构造函数delete[]的原理。原创 2024-04-21 23:44:30 · 1318 阅读 · 2 评论 -
类和对象最终与内存管理上
这个空间的大小通常等于对象的所有成员变量所占用的空间的总和,再加上任何可能由于内存对齐而产生的填充。这可能包括为成员变量设置初始值,以及执行任何必要的初始化代码(比如为栈上的资源开辟空间)。在开始我们的讲解之前,我们先来回顾一下c和c++的程序内存空间划分,并且用一道题目来回顾一下我们之前学习过的内容。构造函数可以执行任何必要的初始化步骤,包括为对象的成员变量或内部资源分配空间。push 和 pop 方法操作这个动态分配的数组,以实现栈的基本功能。有问题的同学自行阅读这张图,相信就能解决你的问题。原创 2024-04-20 15:55:56 · 1081 阅读 · 0 评论 -
类和对象第五弹
int _a1;return 0;同学们可以猜猜我们运行的结果是多少?答案是1和随机数在这里我们要提出一个概念;成员变量在类中的声明顺序就是初始化列表中初始化的顺序,与其在初始化列表中的顺序无关,所以我们在日常性写代码就要保证自己声明成员变量的顺序,防止发生意想不到的错误。原创 2024-04-17 23:35:17 · 1266 阅读 · 5 评论 -
类和对象第四弹之默认成员函数
嗨喽大家好呀,今天阿鑫给大家带来的是剩下的默认构造函数,好久不见啦,下面让我们进入本节博客的内容吧!类和对象第四弹之默认成员函数最终章1.赋值运算符重载2.const成员函数3.取地址及const取地址操作符重载1.1 运算符重载在c++中,C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。函数名字为:关键字operator后面接需要重载的运算符符号。函数原型:返回值类型 op原创 2024-04-16 11:09:57 · 625 阅读 · 1 评论 -
类和对象第三弹之默认成员函数
嗨喽,大家好呀,阿鑫又和大家见面了,今天带来的是类和对象的重头戏,那么事不宜迟,让我们开始学习吧!我们在上篇博客对构造函数和析构函数进行了简单的介绍,现在我们将具体学习这些默认成员函数,内容有点小绕,请同学们跟进阿鑫的思路,下面让我们进入默认成员函数的世界****对于给定缺省值的内置类型,会自动进行初始化注意:当缺省值和构造函数同时给出时,初始值由构造函数决定我们以调用func函数来说明,为什么参数必须是类型对象的引用与前面两种函数不同的是,我们没有写拷贝函数,编译器调用自动生成的拷原创 2024-04-11 01:07:41 · 1147 阅读 · 2 评论 -
c++过渡知识2
嗨咯,大家好,今天阿鑫给大家带来的是c++的过渡知识2,本篇属于c++过渡知识的收尾哦,难度不是很大,下面请大家阅读本篇博客吧!原创 2024-04-08 19:52:57 · 1182 阅读 · 4 评论 -
类和对象第二弹
4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。而对象在销毁时会自动调用析构函数,注释掉的是实际上运行的代码,编译器用了一个this指针来接受我们传过去的对象的地址,从而通过this来进行对象的调用。并且不指定,编译器不知道是谁的函数,只知道是一个全局函数,但是访问不了类中的成员变量,加了就知道是类的成员函数。其次,我们在计算类的大小时是不需要计算成员函数的大小的,他们不存在于对象的内存当中,存在与一个独立的空间。原创 2024-04-05 17:15:50 · 797 阅读 · 1 评论 -
c++基础知识3以及类和对象上
嗨喽,大家好呀,今天给大家带来的是我们c++基础知识最后一弹,以及初识我们的类和对象,下面让我们开始学习吧!原创 2024-04-02 15:38:33 · 828 阅读 · 0 评论 -
c++过渡知识1
二.缺省参数和半缺省参数今天让我们来学习关于c++我们需要掌握的过度知识,相信经过阅读本篇博客,你一定清晰感觉到c到c++的过度还是比较大的c++用来创建命名空间的关键字是namespace,我们可以在自己命名的空间里随意创建变量,结构以及函数,下面一段代码我来给大家演示一下int age;char name;那么此时就会有小伙伴问了,我们怎么来用这些变量,结构和函数呢?这些是属于局部变量还是全局变量呀?哈哈,慢慢听我来给你讲。原创 2024-03-30 23:21:44 · 1285 阅读 · 1 评论