- 博客(24)
- 收藏
- 关注
原创 QT信号与槽
自定义槽:1、在自定义槽的时候一定要确保该对象继承自QOBject或QOBject的子类,并且在类声明中加上Q_OBJECT宏2、声明定义与普通的函数一样自定义信号:1、在自定义信号时一定要确保该对象继承自QOBject或QOBject的子类,并且在类声明中加上Q_OBJECT宏2、在定义信号时,只需要写个信号声明函数,并不需要写定义,写法与函数类似,注意返回值一定是void发送信号:1、当信号满足条件是,我们就需要发送信号emit 信号名(参数);
2024-01-07 14:58:38 842
原创 Linux下安装websocketpp时报Unknown CMake command “init_target“解决方法
首先先找到cmake目录进去使用pwd显示当前文件路径将这个目录下的文件(CMakeHelpers.cmake)的路径添加到CMakeCMakeLists.txt中文件就可以了。如果警告版本问题可以不用管也可以在这个目录中添加提示的指令 cmake_minium_required(xxx)用cmake时报错说不知道init_tar命令。
2023-10-30 20:55:14 297
原创 Dynamic_cast<Type>解析
1)查找规则:当使用 dynamic_cast 对指针进行类型转换时,会先找到该指针指向的对象,再根据对象找到当前类(指针指向的对象所属的类)的类型信息,并从此节点开始沿着继承链向上遍历(注意是向上),如果找到了要转化的目标类型,那么说明这种转换是安全的,就能够转换成功,如果没有找到要转换的目标类型,那么说明这种转换存在较大的风险,就不能转换。在看项目代码的时候,看到dynamic_cast<type>将一个类转变成另一个类,回想我学过的知识这个并不会所以从网上学习了一下,总结一下。
2023-08-28 11:09:18 92
原创 从零实现一个定长高并发内存池
从堆上一次性开辟一大片空间,由我们自己管理,这里的一大片的空间我们就将它称为池,当我们需要拿空间的时候去这个池中拿取。
2023-04-13 15:55:41 134
原创 C语言-动态实现通讯录
前言:对于动态的和静态代码改变并不多,主要改变结构体的内容。不熟悉静态的先去看静态实现的文章再来,当然这个也无法保存,现在太菜1.结构体讲解对于一个通讯录我们要动态试试,则需要一个指针指向一块地址,当不够时再开辟一块符合我们要求的内存,并将地址返回给我们。既然我们的内存并不固定,我们需要一个capacity去记录我们到底开了多大的空间。用sz来记录我们已经用过了多少开辟的内存typedef struct People{ char name[NAME_MAX]; char tele[TEL
2022-05-15 20:55:14 601
原创 C语言-静态实现通讯录
前言:在了解了数据结构和指针的用法后,我们可以写一个录入信息的通讯录。但是无法保存输入的内容,后续再做一个可以保存的一.静态实现1.头文件以下是所需要的函数以及结构体:增删查找排序以及打印静态的结构体只需要 给开辟一块连续的空间 以及记录这个空间已经被占用了多少的 一个sz来记录。由于静态的需要一开始就给开辟一块规定的空间,如果不够用则无法增加,如果一下开一万个太多,浪费空间,这就是他的缺点。#define _CRT_SECURE_NO_WARNINGS#pragma once#i
2022-05-15 20:40:08 306
原创 C语言小游戏-三子棋
前言:底层实现三子棋,使用二维数组源码地址:蒋文涛 (jiang-wentao-WelTW) - Gitee.com首先:我们把我们所需要写的程序分为三份:头文件、函数实施、运行。这样设置的好处是高度封装,方便以后的更改等。本代码还可优化,给电脑做一些列算法,让他可以战胜人1.头文件代码#include <stdio.h>#include <stdlib.h>#include <time.h>//定义棋盘的大小#define ROW 3#de
2022-05-15 20:23:15 496
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人