- 博客(60)
- 问答 (29)
- 收藏
- 关注
原创 【C++】深入浅出之多态
多态是指不同继承关系的类对象,去调用同一函数,产生了不同的行为。必须通过基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。1.这里派生类的指针去调用public继承下来的基类函数test, 那么test里面又去调用func, this(A*,j基类)指针调用func, 那么这里满足多态吗?多态两个条件(1):要实现多态效果,第⼀必须是基类的指针或引⽤,因为只有基类的指针或引⽤才能既指向基类对象也可以指向派⽣类对象(切片);
2025-04-20 20:08:11
1909
39
原创 【C++】深入浅出之继承
继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,而继承便是类设计层次的复用。例如,以下代码中Student类和Teacher类就继承了Person类。//父类public:protected:string _name = "张三";//姓名//年龄//子类。
2025-04-17 21:06:31
1337
30
原创 【C++】特化妙技与分文件编写 “雷区”
通俗一点,声明就是一个承诺,我现在要结婚买房了,但是钱还差5w,这时候你想起你的好哥们,让他借你5w,你哥们说好,我过几天就给你打过来(声明),这时候你就要等5天后去找他(链接);这就是模板的特性造成无法确定类型,又恰好因为没确定类型,后面单向操作导致test.i有定义不知道初始化什么类型,a.i有类型缺无法实例化。你哥们太关心你了,知道你还差钱,早偷偷的就把钱打给你了,这时候你还需要5天后去找他(链接)吗。使用非类型模板参数后,我们就可以在实例化对象的时候指定所要创建的静态数组的大小了。
2025-04-17 10:40:44
1152
23
原创 【C++】 string底层封装的模拟实现
或许有的兄弟会有疑问,为什么初始化_str的时候,开辟_str的空间要用 new char[1]而不是new char,这是因为我们string的数据存储都是连续存储在一起的,用\0标识结束位置,如果用new char那么单独在各个不连续的空间并不能让每个数据后面都有\0,所以我们new char[]连续的空间,存储在一起,在这块连续的空间后放上\0。因为我们接下来实现的类和和库中std命名空间的string类的类名相同,所以我们为了防止冲突,用一个bit命名的命名空间解决这个问题。
2025-03-30 21:16:36
480
1
原创 【C++】内存管理
看完了使用new/delete如何去操作C++中的【内置类型】,接下去我们来看看我们要如何去操作一个自定义类型首先我们来看看C语言中我们是如何去操作自定义类型的,下面有一个单链表的结构体,此时我们若是要构建出一个个链表结点的话,还需要去调用下面这个函数,很是麻烦int val;exit(-1);但如果用C++的话就不一样了,我们可以使用之前所学习过的构造函数初始化列表在开辟出空间的时候就做一个初始化的工作,做到事半而功倍int val;: val(x){}
2024-09-20 23:16:30
1237
2
原创 【C++】一起探究开挂神器——模板(初阶)
先来看到的就是其定义格式,函数模版加在函数上,那对于类模版的话就是加在类上class 类模板名// 类内成员定义我们以下面这个Stack类为例来进行讲解如果你学习了模版的相关知识后,一定会觉得这个类的限制性太大了,只能初始化一个具有整型数据的栈,如果此时我想要放一些浮点型的数据进来的话也做不到public:perror("malloc申请空间失败!!!");return;_size = 0;_size++;// 其他方法...~Stack()_size = 0;
2024-09-19 20:42:43
978
2
原创 【C++】类和对象(下)
特性2:友元函数不能用const修饰,因为友元函数只是一个全局函数,不属于类的成员函数,所以它没有隐藏的this指针,而const修饰的就是this指针,只有非静态的成员函数才能用const修饰。【单向】这个词很重要,一样还是上面的Date类,因为在Time类中声明了其为它的友元类,但是在Date类中没有声明Time为它的友元类,所以Time是无法访问到Date类中私有成员的。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。
2024-09-14 15:45:52
1220
原创 【C++】日期类的实现
前面我们已经学了类和对象上、中两个模块的内容了,我们可以综合学习的这些内容来实现一个日期类。日期类的实现我们用3个文件来实现,分别是,Date.h Date.cpp test.cppDate.h文件用于类中需要的成员函数的声明Date.cpp文件用于成员函数的实现test.cpp文件用于用户测试案列下面是Date.h的内容class Date//友元函数//友元函数解决类外面函数访问私有变量public://构造函数else。
2024-08-28 16:30:12
779
原创 【C++】拿捏运算符重载
所以当运算符重载函数放到类内时,就要改变其形参个数,否则就会造成参数过多的现象,在形参部分给一个参数即可,比较的对象就是当前调用这个函数的对象即【this指针所指对象】与【形参中传入的对象】【概念】:运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。时,C++语⾔允许我们通过运算符重载的形式指定新的含义。👉【参数类型】:const T&,传递引用可以提高传参效率。👉解决办法3:设置友元【不好,会破坏类的完整性】【函数原型】:返回值类型。
2024-08-16 12:25:49
1032
原创 【C++】类和对象(中)
假设有这么个场景,你需要往栈里面入栈数据。Stack st;st.Push(1);st.push(2);但是一运行起来可以发现,程序却奔溃了,这是为什么呢?原来我们没有写Init函数,那么,栈都还没有开辟空间初始化这些仔细一想就发现好像是忘记Init()初始化了,加上之后就没有问题了那么问题就来了,我们使用栈这个数据结构的时候,有时总是会忘记初始化出问题。这在练习中可能容易发现,但是如果在一个大项目中就难以调试。这就要涉及到我们的构造函数(C++默认的6个函数之一)首先我们来介绍这六个函数。
2024-08-12 22:06:48
841
原创 【C++】类和对象(上)
C++中用class关键字来定义类,和C语言中结构体一样其中类的主体用{}括起来,并在后面加上分号类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数为了区分成员变量,在命名的时候开头用_或者m(不强制)// 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号【 注】:class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略还记得我们在数据结构中讲的栈吗?
2024-08-07 09:34:31
828
原创 【C++】内联函数vs宏 && nullptr
inline不建议声明和定义分离到两个⽂件,分离会导致链接错误。因为inline被展开,就没有函数地址址,链接时会出现报错。return 0;解决这个问题就直接把定义和声明写到同一个头文件中这样内联函数在展开的时候就可以找到地址#nullptrC++中NULL可能被定义为字⾯常量0,或者C中被定义为⽆类型指针(void*)的常量。不论采取何种。
2024-08-03 19:47:16
840
1
原创 【C++】初识引用
首先来看第一个,若是定义了一个引用类型的变量int&,那么就必须要去对其进行一个初始化,指定一个其引用的对象,否则就会报错int a = 10;int& b = a;int& c;
2024-08-03 18:37:22
1246
1
原创 【C++】初识C++
命名空间里面也可以嵌套命名空间。就像结构体里面也可以嵌套结构体这时候我们对于:是不是也可以封装在一个命名空间里面在嵌套定义两个命名空间//队列代码 {//单链表代码 } }
2024-08-01 22:04:21
1112
原创 【C语言】文件的顺序读写
对文件数据的读写可以分为顺序读写和随机读写。顺序读写,即挨着顺序对文件中的数据进行输入或输出。在这片博客中,我们首先介绍文件的顺序读写需要用到的文件操作函数。
2024-07-02 11:08:26
1103
原创 【C语言】文件操作(1)
什么是文件?文件是计算机文件,属于文件的一种,与普通文件的载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。在程序设计中,我们一般关注的文件有两类,即程序文件和数据文件。程序文件: 包括源程序(以.c为后缀)和可执行程序(以.exe为后缀)。数据文件: 文件的内容不一定是程序,而是程序运行时读写的数据。比如程序运行时需要从中读取数据的文件,或者输出内容的文件。注:这里本篇内容讨论的是数据文件。我们已经了解了文件的基本概念,那么我们如何通过代码对某一个文件进行一些操作呢?
2024-07-02 10:40:12
833
原创 重行吾之所道,洒青春之热血
各位码友好,我是来自重庆城市科技学院软件工程的一名准大一新生,相信大家以前或许看过我的文章,实不相瞒,我是一名中职生,那时候因为临近高考不得已,暂时放下编程去补文化课,如今高考已完成,我又可以像当时那样追求我所爱的东西。我认为学习编程就要做到知行合一,不要光看,重要的是理论与行动相结合,用行动带动理论知识,做到理论的体现。三、我最想进入的公司是腾讯,我认为我能在那里扩大自己的视野,增长自己的经验与阅历,在那里实现我的目标。1.掌握必要的编程语言如C/C++,java。3.掌握计算机网络协议。
2024-04-01 06:22:06
275
空空如也
编程实现循环代码。.
2021-11-29
关于自定义头文件的问题
2021-11-21
关于打印替换字符的问题
2021-11-13
关于变量新来旧去规则
2021-11-11
关于结构体返回问题.
2021-11-11
关于for循环工作过程问题
2021-11-04
眼睛都看痛了,不知道怎么输出那个相加的数
2021-11-04
关于自定义函数问题。
2021-11-07
按要求写出正确的逻辑表达式
2021-10-28
关于代码问题.?!。
2021-10-01
关于后辈的前途道路疑问的问题
2021-10-10
关于ASCll码字符型运算问题和复合运算符问题
2021-10-20
关于c语言代码书写格式的问题
2021-10-18
关于刚刚接触c语言数组的问题
2021-10-17
关于代码的错误问题.
2021-09-20
c语言新小白第一次写代码问题
2021-09-11
关于换行符的问题求解决
2021-09-11
小白入坑c语言的问题
2021-09-10
关于c语言自增运算符的问题
2023-11-03
关于C语言双字符串组合问题
2023-07-20
关于结构体访问问题.
2023-05-06
关于变量与自身自减的比较问题
2023-04-04
关于C语言逻辑与的断路特性问题
2023-03-12
关于C语言阶乘问题。,
2022-10-21
关于C语言数据类型转换的问题
2022-08-26
一道关于c语言编程问题
2022-04-30
关于printf函数格式输出%%d的问题
2022-04-04
数学表达式转c语言表达式
2022-04-03
c语言练习题望解答。
2022-03-09
mac os操作系统下vs code 编译器c语言头文件无法打开问题
2022-02-14
关于qsort库函数排序问题
2022-01-21
关于辗转相除法的过程
2022-01-03
关于break语句的问题
2021-12-11
关于函数被不明引用问题
2021-12-05
关于c语言LNK2019问题
2021-12-10
执行代码后无缘无故出现的数字
2021-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅