- 博客(17)
- 收藏
- 关注
原创 构造函数初始化列表
内部类默认是外部类的友元类,这在 A 类和 B 类紧密关联,A 类主要为 B 类服务的场景下很有用,比如把 A 类设计为 B 类的内部类,放在private或protected位置,让 A 类成为 B 类的专属内部类。用static修饰的成员变量是静态成员变量,它为所有类对象共享,不属于某个具体对象,存储在静态区,并且必须在类外初始化。友元函数不是类的成员函数,却能访问类的内部成员,而且它的声明位置很灵活,不受访问限定符的限制。指针,所以在静态成员函数里只能访问其他静态成员,不能访问非静态成员。
2025-02-18 11:38:26
912
原创 C++ 3.六个默认构造函数
自定义类型需要调用这个成员变量的默认构造函数初始化假设我们要用两个栈实现队列public:perror("malloc申请空间失败");return;_top = 0;// ...private:// 两个Stack实现队列public:private:int main()MyQueue mq;return 0;对于Stack,如果没有显式写构造函数,编译器就会报错。
2024-12-17 11:52:33
1187
原创 C++ 2.类和对象
class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数为了区分成面变量,会在成员变量前面加一个特殊标识,如前面或者后面加 _ 或者 m与C不同的是,C++兼容C中struct的用法,并且将struct升级为了类,明显变化就是struct中可以定义函数但是class定义的类和struct定义的类的不同是。
2024-12-17 08:37:56
693
原创 C++ 1.命名空间以及部分基础知识
流是字节序列的抽象,就像是数据流动的管道。const引⽤也可以引⽤普通对象,因为对象的访 问权限在引⽤过程中可以缩⼩,但是不能放⼤。⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联 函数就需要建⽴栈帧了,就可以提⾼效率。语⾔实现宏函数也会在预处理时替换展开,但是宏函数实现很复杂很容易出错的,且不⽅便调 试,C++设计了inline⽬的就是替代C的宏函数。下面是一个简单的代码,首先是输入a的数值,然后通过cout打印出a,b,c这三个字符的内容。
2024-12-12 13:26:26
538
原创 C语言--二叉树
树由节点和边组成,其中节点表示数据元素,边表示节点之间的关系。二叉树(Binary tree)是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。
2024-07-24 17:53:54
1183
原创 栈与队列的实现和练习
栈 -- 后进先出,只能在栈底修改数据实现栈用数组还是链表单链表不太好用,因为需要找上一个,非要使用单链表,也可以如下,让栈顶元素作为单链表的首元素这次我们先使用数组来实现栈先进先出,也就是说,进队列1234,出队列也为1234。
2024-06-09 18:00:07
824
原创 链表OJ练习题
整体的思路就是创建快指针fast和慢指针slow,先让fast走k步,然后fast和slow一起走,当fast = NULL时,slow就是倒数第k个节点。假设当slow刚进入环时,fast距slow为N,fast在追赶slow,相当于是每次两者之间的距离都减小1。注:慢指针不可能走超过一圈,如果慢指针走一圈,说明快指针走了两圈,但是不可能,两者相遇就结束了。也是用快慢指针,一个fast每次走两步,一个slow每次走一部,相当于是追赶问题。不行,拿2举例,每次距离缩小2,必须是2的倍数才能相遇。
2024-05-21 21:12:18
703
1
原创 C语言—编译与链接
在ANSI C的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码各种 .c 文件放入翻译环境中,进行 编译-->链接,转换为可执行文件,得到输出结果。
2024-04-05 16:08:59
869
1
原创 C语言文件相关操作
磁盘(硬盘)上的文件是文件再程序设计中,我们说的文件一般有两种:1.程序文件 2.数据文件 (从文件功能的角度来分类的)二进制文件和文本文件错误的使用 -- feoffeof的作用 -- 当文件读取结束的时候,判断是否读取结束的原因 是否是 :遇到文件结尾结束不能用feof返回值来判断文件结束文件读取结束1. 有可能是遇到文件结尾 -- feof2. 读取的时候遇到了错误 -- ferror。
2024-04-05 16:08:55
1660
1
原创 C语言-结构体
由于S3是嵌套,看S3的最大对齐数即8(double),所以S3对齐到8的整数倍处(嵌套的结构体,对齐到自己的成员中最大对齐数的整数倍处)即8~23处,让后double放24~31处,所以S4占32个字节。得到的结果为12,我们看一下下面的图片,首先c1为第一个成员,放在0处,再看i,4 < 8故放在4的倍数处,也就是4~7,最后是c2 1 < 8 放在8处。d为double类型,放在0~7偏移量处,c放偏移量8处,i需要放4的倍数即12~15处,那么S3的大小为16。
2024-03-21 20:47:08
1450
1
原创 数据在内存中的存储
在解释大小端之前,我们先看一个例子在调试中得到如下结果,以字节为单位,但是内容倒着注意:1.整数在内存中存储的是二进制的补码2.在调试窗口中观察内存,为了方便展示,显示的是16进制的值3.存储顺序倒过来了!!!其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。
2024-03-21 20:46:43
1847
1
原创 内存操作函数与数据在内存中的存储
在解释大小端之前,我们先看一个例子在调试中得到如下结果,以字节为单位,但是内容倒着注意:1.整数在内存中存储的是二进制的补码2.在调试窗口中观察内存,为了方便展示,显示的是16进制的值3.存储顺序倒过来了!!!其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。
2024-03-17 17:18:34
747
1
原创 扫雷游戏的c语言代码实现
扫雷游戏的大致函数写完了,但是如此一来会导致该游戏只能一个一个的点雷的位置,下面使用递归函数来让周围没有雷的空位置直接显示出来。在开始扫雷游戏之前,我们需要制作一个菜单,用来实现游戏的进入与退出,同时使用switch选择语句进行游戏开始。注意:为了使雷的位置随机,需要引入time.h文件随机生成。然后制作一个函数,使得我们能够对有雷的位置进行标记。接下来使用二维数组的方式来填充放置雷。使用选择语句来进行ca。
2024-01-20 14:08:53
488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人