![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习笔记
文章平均质量分 61
影子Ellery
这个作者很懒,什么都没留下…
展开
-
【C/C++】虚函数
使用virtual修饰的函数称为虚函数;虚函数可以是类中的成员函数、析构函数;不能是构造函数。对于虚函数,在派生类中的同名(函数名、参数和返回值都相同),则默认为虚函数。一般情况,类中析构函数都使用虚函数表示,或者使用纯虚函数表示;此时派生类中的析构默认为虚析构函数。虚函数:virtual修饰的成员函数,有函数体为虚函数,通过父类指针 使用子类重写的虚函数。以实现多态。纯虚函数:virtual修饰的成员函数=0,没有函数体。所在的类为抽象类不能实例化对象。原创 2023-08-22 10:05:33 · 110 阅读 · 0 评论 -
【C】设计一个读者-写者模式,要求用多线程实现三个进程写数据,五个进程读数据
这一技术的实现是利用了读写锁,为避免在读进程读的时候写进程同时在写,从而导致数据读取错误吗,这里需要用到读写锁,即当都进程读的时候上锁,防止在读的过程中写进程写数据,而写进程在写的时候也上写锁,防止还没有写完数据读进程就开始读取了。读者-写者模式在现实中有很多的应用场景,在读数据的频率大于写数据的频率的情况下,读者-写者 模式的效率很高。原创 2023-07-05 08:25:52 · 167 阅读 · 0 评论 -
【C/C++】为什么不可以返回局部变量的地址,但可以返回局部变量的值?不能返回局部变量的引用
在调用aTestFun01()的时候定义了a = 98,但是在返回之前,整块空间就已经被释放了,这个局部变量a的地址丢不回来,返回的是一个随机数。这是已经保存了局部变量a的地址,即使TestFun01函数空间被释放了,这个a也暂时存储在寄存器里,这是如果直接打印是可以得到返回值a的值的。i = 0 ⇒ 开辟f()的空间,执行函数体,释放函数空间。i = 1 ⇒ 开辟f()的空间,执行函数体,释放函数空间。i = 2 ⇒ 开辟f()的空间,执行函数体,释放函数空间。原创 2023-06-07 20:31:17 · 357 阅读 · 0 评论 -
【C】缓冲区
缓冲区是一个类似于“ 草稿 ”的机制,先将输入或者输出写到缓冲区,然后再将缓冲区内的数据输出到屏幕,这样做的好处是可以先输入一串字符,包含空格等分隔符在内,然后将整个字符串输入或者输出。但也会出一些细节方面的问题:比如:出现了这个问题:我按下一次n本应该提问一次然后我在按下n或者y,但是现在是我按下一次n,系统提问两次,相当于中间跳过了一次。原创 2023-05-08 11:03:30 · 38 阅读 · 0 评论 -
【C】结构体的内存占用问题,为什么我的结构体占用的空间那么大啊
结构体在存储的时候,会根据内部数据的数据类型开辟空间,但是按照相邻的数据成员变量的最大对齐方式进行字节对齐,并且影响整个结构体的空间大小这三个结构体个占用多少个字节?现在用 sizeof() 关键字去验证一下:为什么都是一个char、一个short、一个int,但是所占用空间会不同?那他们在内存中是怎么分布的?原创 2023-05-06 16:19:03 · 254 阅读 · 0 评论 -
【C】一些C语言封装函数的使用练习题
解析: \n、\1、\都各自表示一个字符,因为“ \ ”是转义字符,\n是一个换行符,\是输出" \ ",\1是ASCII码值为1的那个字符。strlen( p ):因为p中的具体元素一共有11个字母,每个字母都占用一个字节,所以输出11,最后答案是20,11。sizeof( p ):因为char p[20]开辟了20个字节的空间(每个char类型占一个字节),所以是20。记录一下个人看视频做错的的练习题。这应该是个营销号,不是视频原作者。原创 2023-05-06 11:43:42 · 62 阅读 · 0 评论 -
【C】函数指针、指针函数
先来说一下指针函数说白了函数指针就是一个函数,只是和普通的函数的区别是它返回的是一个指针比如这样:可以看到返回值是一个指针类型,也就是返回的是一个地址。以上函数的功能是将src字符串复制给dest字符串,然后返回的是dest字符串的首地址。原创 2023-05-05 17:35:16 · 42 阅读 · 0 评论 -
【C】用C语言做一个很简单的音乐播放器
需要注意的事项就是这些,我也是跟着视频做的,发现自己好多东西不知道,发现了自己的短板,接下来几天学一学几个库的使用。等学的差不多了再添加一下切歌的功能。要求:实现音乐的播放、暂停、继续、关闭,只有这四个功能,当鼠标放在按钮上的时候按钮会变颜色。2.在文件所在位置至少有一张背景图,一首.mp3格式的文件。1.首先你得有相应的头文件,这个自行百度获取。4.mmsystem.h 内置函数的使用。5.graphics.h 内置函数的使用。3.string.h 内置函数的使用。2.数据结构的结构体。原创 2023-05-02 11:09:23 · 2396 阅读 · 0 评论 -
【内存】如何判断计算机是大端存储还是小端存储?
先定义一个数,就定义成1,因为如果大端存储肯定存的是0x00 00 00 01,而小端存储是0x01 00 00 00。一个int占四个字节,而一个char只需要占一个字节,所以用char型指针保存a的地址,结果一定是从左向右扫描一个字节,但保存的还是起始地址(这里利用了指针的性质),然后再解引用就能得到int型变量a的第一个字节的值,要么是01,要么是00。如果a是大端存储,计算机里存储的是0x00 00 00 01。如果a是小端存储,计算机里存储的是0x01 00 00 00。原创 2023-04-26 20:48:19 · 109 阅读 · 0 评论 -
【C】指针
众所周知,正常的变量里存放的都是数据,但是指针变量里存放的是地址,但是指针有好多种调用形式,先来一起感受一下:就拿上面的案例来说哈:现在p是指针,指向数组arr的起始地址。原创 2023-04-20 20:17:09 · 42 阅读 · 0 评论 -
【C/C++】存储类型关键字(内存框架、auto、register、extern、static关键字 的解读)
在操作系统中,进程是资源管理的最小单位,每个程序执行至少会创建一个进程。进程创建时候会构建4G内存空间。原创 2023-04-20 19:15:04 · 187 阅读 · 0 评论 -
【C++】String类
由上图可见string类的字符串可以像数组一样,。。这也是string和字符数组的主要区别。.类设计让。不用提前开辟空间,他会自己动态开辟空间。原创 2023-04-19 20:01:09 · 80 阅读 · 0 评论 -
【C++】cin 输入的常用方法
在使用cin是最好头文件部分加上一句using namespace std;这样就可以直接使用 cin >> 了。原创 2023-04-17 14:41:50 · 3210 阅读 · 0 评论