- 博客(66)
- 收藏
- 关注
原创 QT——线程
每一个线程自带事件循环线程函数,不会在main的事件循环中执行所以,我们碰到比较耗时的操作,我们就可以把这个操作放到线程中去完成,避免程序一卡一卡的只要创建出一个QThread对象,就会立刻创建出一个线程只不过该线程没有开始运行而已 即使没写线程主函数,线程依旧能够正常运行那么创建线程的时候,就不要再创建QThread了,而是创建myThread1:一个QThread或者一个myThread,只会有一个线程2:c语言线程,只要线程主函数结束运行,线程就结束运行了,剩下的就是资源回收的问题QT线程,
2025-03-06 16:09:15
516
原创 QT——文件IO
构造函数QFile() 无参构造仅仅构建一个QFile 对象,不设定文件名QFile(文件名)构建一个QFile对象的同时,设定文件名但是注意,仅仅设定文件名,并不会打开该文件设定文件名QFile filefile.setFileName(文件名)并不会打开打开文件file.open(打开模式)
2025-03-03 17:05:17
745
原创 信号+槽——QT的核心特性
接受一个信号的槽函数,需要操作多个组件窗口,拥有多个组件窗口地址的,一般就是一个父组件so要为我们自己写的父组件,写一个自定义的槽函数,去操作多个组件注意:1:必须写在 public slots 访问权限里面2:拥有自定义槽函数的类,必须在开头有一个宏:Q_OBJECT如果没有,虚表报错虚表报错了,再加上这个宏,编译还是报错,只能 重新构建 才能解决3:有自定义槽函数的类,必须分文件编译C++ 分文件的规则:一个类占一个头文件;类里成员函数,定义在对应的.cpp 文件省写一个接口。
2025-03-03 15:44:27
740
原创 对象树——控件
QT99%的类,有共同的基类 QObject[控件]QObject派生很多类,通过继承和多态关系,QObject与这些派生类形成树状结构。
2025-02-28 17:32:23
424
原创 QT——c++界面编程库
QT编译的时候,依赖于 .pro 配置文件:SOURCES: 所有需要参与编译的 .cpp 源文件HEADERS:所有需要参与编译的.h 头文件QT:所有需要参与编译的 QT函数库.pro文件一旦修改,注意需要键盘按 ctrl+s 才能加载最新的配置文件标准输出:QDebug 类qDebug() << 输出的数据;qDebug() 是全局函数, 返回 QDebug 对象【 c++中的cout】QT所有的类,以 Q 开头第二个字母通常也大写。
2025-02-28 14:55:17
942
原创 拷贝构造函数 移动构造函数
构造函数的其中一种,构造函数有什么特点,拷贝构造函数拥有同样的特点构造函数:用来构建对象,依据各不相同可以完全没有依据,也可以有几个不同的参数拷贝构造函数:也是用来构建对象的,但有1个依据:另一个对象拷贝构造函数:用一个已在的对象,构建新对象,内部数据和对象一样。
2025-02-27 09:16:39
850
原创 智能指针——管理动态内存,自动释放
指向堆空间手动管理动态内存(new和 `delete`):1. **内存泄漏**:忘记释放内存。2. **悬空指针**:释放内存后仍然访问该内存。3. **双重释放**:多次释放同一块内存。
2025-02-26 17:32:13
337
原创 STL库——标准模板库
Standard Template Library是 C++ 标准库的一部分,提供通用的模板类和函数,实现数据结构和算法,减少代码量。核心思想是泛型编程,通过模板实现代码的复用和扩展。
2025-02-26 16:42:46
253
原创 单例模式——c++
一个类,只能有1个对象 (对象在堆空间)再次创建该对象,直接引用之前的对象so构造函数不能随意调用so构造函数私有so对象不能构造如何调用私有化的构造函数:公开接口调用构造函数调用构造函数:singleTon instance;但return instance 之后,产生拷贝构造,就不单例了so删除拷贝构造函数: singleTon(const singleTon& r) = delete;不能返回引用,因为构造的是局部变量。
2025-02-26 15:40:08
389
原创 C ++ 静态存储区+堆空间
1:生命周期很长,main函数开始之前就存在,main函数结束,才结束2:同名变量的管理,与栈不一样(重名变量前提,作用域一样):栈:遇到重名变量,语法错误静态存储区:遇到重名变量,新声明的变量不再声明,而是直接引用之前声明的那个重名的变量总结:静态存储区的相同作用域中,出现重名变量,后面变量直接引用前面的。
2025-02-26 14:19:31
299
原创 多态 作业
实现:英雄可装备Sword、Blade、Axe,但装备不同武器,英雄要获得不同的属性加成。Sword 类:继承Weapon 类,属性 生命值,set get 方法。Hero类:私有成员(攻击,防御,速度,生命值),set get 方法。Hero类有一个公开函数,equipWeapon(Weapon* w)Blade类:继承Weapon 类,属性 速度,set get 方法。Axe类:继承Weapon 类,属性 防御力,set get 方法。Weapon 类:私有成员(攻击力),set get 方法。
2025-02-26 09:10:16
185
原创 多态——面向对象
多态允许不同类对同一消息做出不同的响应,即同一个接口可以根据实际对象类型执行不同的操作。多态性通过以下实现:1. **编译时多态**(静态多态):函数重载和运算符重载。2. **运行时多态**(动态多态):虚函数和继承。
2025-02-25 14:29:33
165
原创 7.UDP通信
client.c广播server.c client.c组播server.c client.c心跳包udp面向非连接,客户端下线之后,udp的服务器无法知道客户端下线了udp的客户端需要开启一个线程,每个 n 秒像服务器发送一个协议包,协议包的类型定性为心跳包,作用:向服务器表明,我这个客户端还在线,没有下线服务器同理,开启一个专门的线程,每隔一段时间,检查一下所有客户端的心跳包是否有更新,如果m秒都没有更新的话,则认定该客户端下线了 c
2025-02-17 14:58:50
116
原创 5 .TCP传输 文件/数据
本质:客户端通过标准IO或者文件IO,读取文件中的信息然后将读取到的信息,通过套接字发送给服务器服务器接收到这些数据之后,立刻通过标准IO或者文件IO写到文件里面去这个过程里面,服务器需要知道2件事情1:客户端发来的文件的名字2:客户端发来的文件大小(stat函数可以获取)
2025-02-12 09:28:10
277
原创 递归计算 :1 + 1/3 - 1/5 + 1/7 - 1/9 + .... 1/n
【代码】递归计算 :1 + 1/3 - 1/5 + 1/7 - 1/9 + .... 1/n。
2025-02-03 15:37:11
265
原创 条件变量 实现2生产者2消费者模型
a 缓冲区:存储物品。初始化为空。b 计数器:缓冲区中物品数量。初始化为0。c 互斥锁:缓冲区和计数器的互斥访问。初始化。4个线程共用一个锁d 条件变量:生产者和消费者的同步。初始化。not_full 通知生产者(缓冲区未满时)not_empty通知消费者(缓冲区非空时)
2025-02-01 18:57:12
300
原创 互斥锁/信号量实现5个线程同步
所有线程开始执行前,pthread_mutex_init(&mutex, NULL);互斥锁保证在同一时刻,只有一个线程可以访问共享资源,从而实现了线程同步。互斥锁适用于需要严格互斥的情况,而信号量则提供了更灵活的同步控制。信号量的初始值决定了可以同时访问共享资源的线程数量。增加信号量的值,从而允许其他线程进入临界区。设置初始值为1,意味着信号量表现得像互斥锁。减少信号量的值,阻塞线程直到值大于0。4 等待 threads[i] 结束。1 创建互斥锁(1个)1 创建信号量(1个)3 创建线程(5个)
2025-01-31 16:49:57
519
原创 read+write实现:链表放到文件+文件数据放到链表 的功能
1 节点结构(数据int型)2 链表操作(创建节点、插入节点、释放链表、打印链表)。
2025-01-27 22:25:40
454
原创 dup2 + fgets + printf 实现文件拷贝
将源文件的内容读取到内存中,然后将这些内容写入到目标文件。重定向 标准输出到目标文件。()以写模式打开目标文件。()从源文件中读取内容。()将内容写入目标文件。以读模式打开源文件。
2025-01-26 22:03:11
302
原创 实现一个终端的功能,有cd功能
system() 创建一个子进程来执行命令,不影响当前进程的工作目录。用system() 函数执行大多数系统命令,但 cd 命令例外,用 fgets() 或类似函数从标准输入读取一行文本。将用户输入的字符串按照空格分割成命令和参数。存储命令和参数数组,确保以 NULL 结尾。使用循环不断打印提示符、读取用户的输入,父进程用 wait() 等待子进程结束。子进程用 execvp() 执行命令。用 strtok() 来分割字符串。用 chdir() 改变目录。用 fork() 创建子进程。
2025-01-26 00:24:42
275
原创 共享内存 + 信号灯集,实现2个进程聊天
信号灯用于同步两个进程,确保在读写共享内存时不会发生冲突。每个进程都需要实现发送和接收消息的功能。多个进程访问同一块内存空间。将消息写入共享内存。从共享内存读取消息。
2025-01-25 00:53:53
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人