- 博客(47)
- 收藏
- 关注
原创 【C++】类和对象(中)
如果一个类中什么成员都没有,我们简称其为空类。但是空类中真的什么都没有吗?其实不然,任何一个类,即使我们什么都不写,类中也会自动生成6个默认成员函数。
2024-11-28 23:22:40
808
原创 【C++】类和对象(上)
/类体:由成员变量和成员函数组成//注意后面的分号其中class为定义类的关键字,className为类的名字,{}中为类的主体,注意定义结束时加上后面的分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量类中的函数称为类的方法或者成员函数。2.1类的两种定义方式① 声明和定义全部放在类体中。需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。② 2声明放在头文件(.h)中,定义放在源文件(.cpp)中。注意:一般情况下,更期望采用第二种方式。
2024-11-14 12:23:41
668
原创 【C语言】结构体大小计算
offsetof宏的作用是获取结构体中某个成员相对于结构体起始地址的偏移量。通过计算成员在结构体中的位置,它提供了一种可移植的方法来确定偏移量。TYPE: 表示结构体或联合体的类型名。当你需要计算某个结构体类型中某个成员的偏移量时,应在此处指定该结构体类型。MEMBER表示结构体(或联合体)中需要计算偏移量的成员名称。这是你希望得知其在结构体内部位置的字段。该宏返回类型为size_t的值,表示 type 中成员的偏移量。
2024-11-12 21:41:20
1756
原创 【C语言】Union
union 共用体名{成员列表union,“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。
2024-11-11 21:20:50
2271
原创 【C语言】static关键字
static是 C/C++中的关键字之一,是常见的函数与变量(C++中还包括类)的修饰符,它常被用来控制变量的存储方式和作用范围。在众多高级语言中都有其作为关键字或函数出现。
2024-11-07 18:55:51
1312
原创 【网络】初识网络
当路由器需要将一个局域网的数据转发到另一个局域网时,在路由器的链路层会先将数据的在当前局域网对应的底层报头去掉,然后将剩下的数据向上交付给网络层,此时在网络层就可以获取到该数据对应的目的IP地址,然后路由器就可以根据该IP地址在路由表当中进行查找,最终就能够确认该数据应该发送到哪一个局域网。: 负责设备之间的数据帧的传送和识别。也就是说,虽然客户端和服务端可能使用的是不同种类的操作系统,但每个操作系统实现网络协议栈的方法包括各种细节都是一样的,因此双方对数据进行的封包和解包操作都是一样的。
2024-10-11 12:15:49
1116
原创 【Qt】贪吃蛇
贪吃蛇游戏规则:简单来说,贪吃蛇游戏规则是玩家通过四个方向键来控制蛇的移动控制其在地图上吃豆子。蛇运动过程中撞到蛇身,则立即结束游戏在桌面上创建一个名为Snake的文件夹,用于存放项目代码新建一个项目。
2024-08-25 16:55:05
1525
原创 【Qt】对话框
对话框是 GUI 程序中不可或缺的组成部分。⼀些不适合在主窗⼝实现的功能组件可以设置在对话框 中。对话框通常是⼀个顶层窗⼝,出现在程序最上层,⽤于实现短期任务或者简洁的⽤⼾交互。
2024-08-14 20:51:53
1642
原创 【Qt】浮动窗口
浮动窗口是计算机图形界面中一种常见的窗口类型,它可以悬浮在其他窗口之上并且可以自由移动。浮动窗口通常被用于显示一些特定的信息或功能,例如实时监测数据、通知消息、弹出菜单等。浮动窗口可以在屏幕上的任何位置出现,用户可以根据需要将其拖动到合适的位置。QDockWidget是Qt中实现浮动窗口的一个类,它提供了一个可停靠的面板,可用于显示和编辑各种内容。QDockWidget可以在主窗口中创建并停靠在不同的位置,如左侧、右侧、顶部或底部。它可以通过拖动和放置的方式来改变其位置和大小。
2024-08-06 21:25:45
965
原创 【Qt】QWidget的windowOpacity属性 & cursor属性 & font属性
在Qt中,QWidget类和QApplication类都提供了一个cursor属性,用于设置和获取窗口或应用程序的鼠标指针样式。默认情况下,窗口的不透明度为1.0,即完全不透明。(2)使用样式表(QSS)来设置字体,例如:这将将所有QPushButton控件的字体设置为Arial字体,大小为12.(1)使用控件自己的setFont方法来设置字体,例如:这将将按钮的字体设置为Arial字体,大小为12。在Qt中,font属性用于设置控件的字体样式。(1)设置两个按钮,一个增加不透明度,一个减少不透明度。
2024-07-31 17:13:02
945
原创 【Qt】常用控件 & Q widget的enabled属性,geometry属性
Q widget的geometry属性,enabled属性,window frame
2024-07-20 17:06:14
1441
原创 【Qt】信号与槽
信号与槽(Signal & Slot)是 Qt 编程的基础,也是 Qt 的一大创新。因为有了信号与槽的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号。发射信号使用Qt的emit关键字。定义信号使用QT的signals关键字。槽(Slot)就是对信号响应的函数。
2024-07-16 23:28:25
949
原创 【Qt】初识Qt&Qt Creator
Qt 是⼀个 跨平台的 C++ 图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应⽤程序,同时也可以使⽤ C++ 语⾔进⾏⾼级开发。图形用户界⾯ :指采⽤图形⽅式显⽰的计算机操作⽤⼾界⾯,是计算机与其使⽤者之间的对话接⼝,是计算机系统的重要组成部分。框架:是可被应用开发者定制的应用骨架。约束程序员编程。程序员配合框架,完善填充框架中留出的细节即可。
2024-06-26 17:35:38
3486
原创 【Linux】进程间通信
管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个“管道”。eg:统计我们当前使用云服务器上的登录用户个数。其中,who命令和wc命令都是两个程序,当它们运行起来后就变成了两个进程,who进程通过标准输出将数据打到“管道”当中,wc进程再通过标准输入从“管道”当中读取数据,至此便完成了数据的传输,进而完成数据的进一步加工处理。who命令用于查看当前云服务器的登录用户(一行显示一个用户),wc -l用于统计当前的行数。
2024-06-21 12:54:41
941
原创 【Linux】磁盘结构&&文件系统&&软硬链接&&动静态库
静态库 (.a):程序在编译链接的时候把库的代码链接 (拷贝) 到可执行文件中,程序运行的时候将不再需要静态库。动态库 (.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。
2024-05-30 16:54:08
1199
原创 【Linux】文件操作&文件描述符&重定向
文件管理:我们知道,文件操作本质上是进程与被打开文件之间的关系,同时,一个进程可以打开多个文件,且操作系统同时运行着许多个进程;那么操作系统中就一定存在着大量被打开的文件,那这些被打开的文件要不要被操作系统管理起来呢?答案是肯定的。如何管理呢?和 计算机软硬件体系结构 中总结的一样 – 再描述,在组织,即将文件的所有属性都总结到一个结构体中,并为每一个文件都创建一个结构体对象,再用一种数据结构将这些结构体对象组织起来,这样对众多被打开文件的管理就变成了对某一种数据结构的增删查改;
2024-05-18 13:06:16
1009
原创 【Linux】实现一个简易的shell
而当我们使用 PWD 指令来查看当前路径时,cd 指令对应的子进程已经执行完毕退出了,此时 myshell 又会给 PWD 创建一个新的子进程,且这个子进程的工作目录和父进程 myshell 相同,所以 PWD 打印出来的路径不变。shell 可以通过进程等待的方式获取上一个子进程的退出状态,然后将其保存在?变量中的内容,然后将?myshell 是通过创建子进程的方式去执行命令行中的各种指令的,也就是说,cd 命令是由子进程去执行的,那么自然被改变也是子进程的工作目录,父进程的工作目录不受影响;
2024-04-21 11:35:54
822
1
原创 【Linux】进程地址空间
我们以前在学习 C/C++ 的动态内存管理的时候,通常把地址空间划分为如下几个区域:但是我们上面的地址空间是真正的物理空间吗?while(1)printf("子进程已经修改了全局变量...........................\n");cnt++;
2024-04-12 16:19:59
945
原创 【Linux】环境变量
Linux 中的各种指令本质上是 /usr/bin/ 目录下的一个个可执行程序,和我们自己编写的可执行程序没有任何区别;但是我们发现,执行我们自己的程序时需要指定路径,但是执行Linux中的各种指令却不需要指定路径:这是因为系统中存在PATH环境变量,PATH中存放着这些指令的地址;当我们使用这些指令时,系统会自动去PATH中寻找,如果找到了就执行,找不到就报错 – “command not found”。
2024-04-11 11:37:55
2382
1
原创 【Linux】进程状态&优先级
上面我们提到一个进程的资源在被全部释放之前,需要由父进程或者操作系统来读取退出状态代码,而如果父进程不读取子进程的退出状态代码,该进程的PCB就一直得不到释放,此时该进程就会变成僵尸进程。
2024-04-09 09:29:19
899
原创 【Linux】简述gdb
GDB是一个由GUN开源组织发布的,UNIX/LINUX操作系统下的,基于命令行的程序调试工具。release版本和debug版本区别在Debug:Debug 通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供 强大的应用程序调试能力。Release:Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
2024-03-21 11:33:52
920
1
原创 【Linux】计算机之冯诺依曼体系 & 操作系统小结
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成运算器、控制器、存储器输入设备输出设备),这套理论被称为冯·诺依曼体系结构。2.结构概述图:注:内存是硬件,相当于一个巨大的缓存。一款进行软硬件资源管理的软件,在开机时第一个加载。
2024-03-18 20:10:50
836
原创 【Linux】简述git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。将被管理的内容,按照变化来进行管理的软件。(最终目的:无论需要哪个变化的版本,都能找到并提供给用户)特点:(1)是一个软件,既是客户端又是服务(2)只会记录变化的软件(3)分布式软件,去中心化github/gitee 是基于git软件搭建的网站 ---- 让版本管理可视化。
2024-03-15 18:16:13
378
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人