- 博客(90)
- 收藏
- 关注
原创 The struct the default is public that is the only difference between a struct and a class
【代码】The struct the default is public that is the only difference between a struct and a class。
2024-07-09 14:18:21 211
原创 函数返回值不能作为函数重载的条件,C++的函数重载是基于函数名和参数列表来识别的,而不是基于返回类型。
函数返回值不能作为函数重载的条件,因为C++的函数重载是基于函数名和参数列表来识别的,而不是基于返回类型。
2024-07-03 13:07:46 146
原创 C++利用常量来防止形参误修改 函数被定义两次是不允许的
如 displayInfo(const int& num)函数体内对num进行了修改,会报错。
2024-07-02 17:02:13 159
原创 Unity编辑器工具---版本控制与自动化打包工具
这个Unity编辑器工具的目的是简化Unity项目的版本管理和打包流程。打包路径是工程所在目录中的Builds文件夹。放在Assets下面的Editor文件夹中。
2024-06-26 10:40:35 413
原创 堆区: 由程序员分配释放,若程序员不释放,程序结束时由操作系统回收
这是因为,就像宝藏猎人游戏中的宝箱,堆区给你提供了一个地方来存放你的宝藏(数据),但你需要自己管理这些宝藏。:这就像是如果你在游戏结束时忘记把宝藏从宝箱里拿出来,那么游戏结束后,会有人来清理宝箱,把宝藏收走。在编程中,如果你忘记告诉电脑去释放堆区的内存,那么当程序结束时,操作系统会帮你清理。在这个游戏中,你有一个大宝箱(这个宝箱就像是堆区),你可以在任何时候往里面存放宝藏(这些宝藏就像是我们的数据)。:这就像是在游戏中,你可以决定什么时候往宝箱里放宝藏,也可以决定什么时候把宝藏从宝箱里拿出来。
2024-05-16 16:58:20 291
原创 悬挂指针;栈区: 由编译器自动分配释放,存放函数的参数值,局部变量等
不要返回局部变量的地址, 当函数结束之后,内存就会被释放,这时候再用指针去操作地址就是非法的了。在 C++ 中,函数内部定义的局部变量存储在栈上。当函数执行完毕,它的栈帧(包括局部变量)会被弹出,这意味着局部变量的内存空间会被释放,不再属于该函数的控制范围。如果一个函数返回了一个指向局部变量的指针,那么这个指针就变成了所谓的“悬挂指针”。因为指针指向的内存空间已经被释放,再次通过这个指针访问或修改数据将会导致未定义行为。
2024-05-16 16:05:09 310
原创 程序运行前的两个区域
代码区是“共享”的:如果有很多机器要做一样的事情,它们可以共用一个做这件事的机器指令,这样就不用每个机器都复制一份相同指令了,节省空间。代码区是“只读”的:就像图书馆里的书,我们只能看,不能写,这样是为了防止有人不小心改了机器的工作步骤,让机器不能正常工作。这些东西在程序开始的时候放到仓库里,当程序结束了,工厂关门了,仓库里的东西就会被清理掉,这样为下一次使用做好准备。编译之后,电脑就会得到一个叫做“exe”的文件,这个文件就像是游戏的启动按钮,我们点击它,程序就开始运行了。修饰的变量可以被视为常量。
2024-05-16 15:14:04 320
原创 C++中rand()函数和随机数种子
rand() % 100 会产生一个从0到99的随机数,因为 % 是取模运算符,它会给出 rand() 除以100的余数。表达式 int num = rand() % 100 + 1;产生的是1到100之间的随机数,而不是1到99。就表示 a~b 之间的一个随机整数。当在这个结果上加1时(…+ 1),就将可能的数值范围从0-99转换到了1-100。因此,num 可以是1到100中的任何整数,包括1和100。
2024-05-11 11:21:15 282
原创 Unity:The associated script can not be loaded. Please fix any compile errors and assign...
最后发现是脚本忘记继承Monobehavior。
2024-05-09 10:32:36 209
原创 指针,解引用,空指针,野指针,常量指针(const+指针),指针常量(const+常量)
去酒店前台询问房间,但是前台给了一个不存在的房间号,比如“0号房间”。当你尝试去找这个房间时,会发现酒店根本没有这个房间,因为“0号房间”通常用来表示没有分配房间。可以安全地持有这个空指针,但是你不能尝试访问它所指向的“房间”,因为这样的“房间”根本不存在。类比为去酒店开房间,本应该打开自己开的房间,但是却要去开其他客人的房间。每个房间(内存地址)都属于某个客人(程序或系统的一部分),如果你试图进入别人的房间(访问不属于你的内存地址),那么这是不被允许的,可能会导致安全问题或冲突。
2024-05-05 01:55:38 195
原创 指针++的作用是?为什么可以通过指针访问到数组中的所有元素?
当使用p++时,指针p的值增加了sizeof(int),即指针向前移动了一个整数的大小。由于数组arr有7个整数元素,从arr[0]到arr[6],所以通过7次循环,每次循环后指针p移动到下一个元素的地址,并解引用*p来访问该元素的值,就能访问到数组中的所有元素。在C++中,当对一个指针使用++操作符时,指针的值会增加它所指向类型的 size。这是因为指针的增量操作是基于指针指向的类型的大小来进行的,以确保指针正确地移动到下一个元素的内存位置。因此,*p就是数组第一个元素的值,即arr[0]。
2024-05-05 01:41:49 180
原创 C++冒泡排序以及 使用指针来实现冒泡排序
每轮对比次数 = 元素个数 - 排序轮数 - 1。使用指针来实现冒泡排序,并打印排序后的数组。排序总轮数 = 元素个数 - 1。(注意元素个数是固定的)
2024-04-25 19:45:12 217
原创 编译 --> 链接
编译就是将我们编写的源代码“翻译”成计算机可以识别的二进制格式,它们以目标文件的形式存在;链接就是一个“打包”的过程,它将所有的目标文件以及系统组件组合成一个可执行文件。如果不是特别强调,一般情况下我们所说的“编译器”实际上也包括了链接器。
2024-04-25 13:26:11 149
原创 Qt多媒体模块QMediaPlayer
该文件通常包含 main() 函数,这是所有 C++ 程序的入口点。在 Qt 应用程序中,main() 函数通常会创建一个 QApplication 对象和你自定义的窗口或对话框对象,然后开始消息循环。:如果应用程序使用了一个主窗口,那么这个文件就会包含 MainWindow 类的实现。:这是 Qt 项目文件,它包含了项目需要的所有信息,例如项目中包含哪些源文件、需要哪些库以及项目的其他配置信息等。可以把它理解为项目的配置和说明文件。:这些是源文件,它们包含了程序中的函数和类的实现。
2024-04-25 11:22:39 335
原创 三目运算符 左值和右值
那就不行了,因为b + a 表达式会产生一个临时结果,这是一个右值, 不对应于内存中的特定可修改位置,右值是临时的,不可寻址的,不能作为赋值的目标。中,a和b都是变量的名字,代表的是内存中的具体位置,因此它们都是左值。无论 a > b 的结果是真还是假,三目运算符返回的都是一个左值,这个左值是可以被赋值的。三目运算符可以返回一个左值,但这个左值必须代表一个可寻址的位置。如果三目运算符的任何一边产生了临时结果,那么整个表达式的结果就是一个右值,不能用于赋值。
2024-04-22 16:08:37 198
原创 Ubuntu卡顿解决方法(将虚拟机迁移到固态硬盘)
将虚拟机迁移到SSD(固态硬盘)后,Ubuntu就流畅很多了,可以打开任务管理器看下自己电脑哪个盘是固态硬盘,把虚拟机所在的安装文件夹迁移到固态。
2024-04-22 15:53:21 573
原创 【未完成】【QT+OpenCV】车牌号检测 学习记录 遇到的问题
配置过程中发现由于缺少opencv-contrib(OpenCV贡献模块),找不到text.hpp文件,于是又去下载了opencv-contrib。显示OpenBLAS,LAPACK,JNI,以及FFmpeg等开发库在系统中没有被找到。再下一个Cmake ,下载Latest Release (最新稳定版)【QT+OpenCV】车牌号检测 学习记录。首先在QT里面配置好OpenCV。使用Cmake进行编译,
2024-04-18 09:58:35 637 2
原创 在windows下载安装opencv并配置VisualStudio环境
测试的时候,输入教程所写的代码,报错未定义标识符“CV WINDOW AUTOSIZET”,原因是在OpenCV 3及以后的版本中,所有常量都被移到了cv::下,所以应该使用。系统环境变量和Visual Studio中都需要配置,还是比较简单的。但我这边没有opencv只有opencv2。目前看来好像影响不大。测试结果正常,OpenCV安装成功。
2024-04-17 15:31:27 287
原创 数据库基本概念和SQL基本语句
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。在数据库中,数据通常以表格的形式存储,这些表格包含了行和列。行通常代表记录,而列代表记录中的不同字段。数据库的设计允许对数据进行高效地查询、更新、删除和添加操作。
2024-04-16 19:08:14 1624
原创 QT串口助手
波特率下拉框(baundrateCb),数据位下拉框(databitCb),停止位下拉框(stopbitCb),发送输入区域(sendEdit),端口下拉框(SerailCb),校验位(CheckbitCb),打开串口按钮(openBt),接收区域(recvEdit),发送按钮(sendBt)
2024-04-16 15:03:19 342
原创 【SQL】DISTINCT GROUP BY
GROUP BY的作用是将查询结果集中的行按照指定的列的值进行分组,以便可以对每个分组进行聚合计算。GROUP BY允许我们将大量的数据划分成更小的、有意义的集合,然后对每个集合执行计算。所以,GROUP BY的作用就是将数据按照某种标准(如列的值)进行分类,然后对每个分类进行计算,以便得到更有意义的结果。想象一下,你正在参加一个班级聚会,班级里的每个人都来了,而且每个人都带了食物。在这个例子中,GROUP BY就像是将食物按照种类分类的过程,而聚合计算就像是数每种食物的总数。
2024-04-15 15:07:37 418
原创 Unity的ScriptableObject
ScriptableObject是一种用来存储数据的资源文件,类似于JSON、XML或文本文件。与这些文件不同的是,ScriptableObject在游戏开始时不需要重新读取文件数据,因为它本身就是资源文件的一部分。可以将ScriptableObject理解为一个包含多个变量的类,开发者可以在需要时实例化这个类来直接使用其中的数据。
2024-04-15 11:05:17 861
原创 将Composite Collider 2D组件移除可解决Unity穿墙问题
将Composite Collider 2D组件移除可解决Unity穿墙问题。
2024-04-10 18:53:29 323
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人