自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (2)
  • 收藏
  • 关注

原创 Qt报错:C1083 无法打开包括文件: No such file or directory

于是,我就在当前ui_TalkWindow.h文件的目录中添加这个qmsgtextedit.h文件,运行之后就解决了!我双击ui_TalkWindow.h,

2024-04-06 22:42:51 479

原创 VS2019 + Qt : setToolTip的提示内容出现乱码

应该是编码出了问题。不修改cpp文件的编码方式,使用 QStringLiteral() 传参。标签提示只有英文是对的,中文是乱码!可以看到,编码是ANSI,明显不对!我就转换了一下编码,转为UTF-8.

2023-08-16 15:56:22 615

原创 QT+VS:错误:error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl

本人先后在csdn上搜索了一堆解决办法,有很多都是在说如何生成 .moc文件,但我的已经生成了,可以在moc文件夹中找到,移除关联文件再重新保存也不行。小心VS2019,这样写没有错误提示,等你编译之后会出现跟链接相关的错误!当你出现链接相关的错误时,又恰好用了VS2019,就看看头文件是否出错!最后,发现是多了一个双引号,VS2019竟然不报错,枉我这么信任它。

2023-08-14 21:21:31 1888 6

原创 Qt中出现错误:Cannot find Makefile. Check your build settings.

错误:Cannot find Makefile. Check your build settings. Error: while building/deploying project untitled1 (kit: Desktop Qt 5.14.1 MinGW 32-bit) When executing step Make.错误:Running Windows Runtime device detection.

2023-06-21 19:09:44 940

原创 Qt错误: warning: ignoring old recipe for target ‘childwnd.o‘.

重复了, 删掉就好.

2023-06-21 18:10:17 518

原创 Qt中,关于undefined reference to ‘vtable for ‘的错误

在Qt中通过信号与槽机制来实现不同对话框,或者是不同窗口中的控件之间的信息通信。

2023-01-02 17:25:51 393 1

原创 关于自增约束auto_increment需要注意的地方,mysql8版本的报错

关于自增约束auto_increment需要注意的地方,mysql8版本的报错

2022-12-07 17:46:10 3755

原创 重新安装mysql时,Windows Service Name已经被占用了怎么办

重新安装mysql时,Windows Service Name已经被占用了怎么办,如图:解决办法:一,以管理员身份运行命令提示符(直接在搜索栏输入:cmd);运行之后:二, 输入命令:sc delete MYSQL80(输入重复的Windows Service Name,我MySQL的Windows Service Name是MYSQL80,你输入你的Windows Service Name)三,输入命令之后,敲回车键。这样就ok了。不过,程序有个反应的过程,删除Windows Service

2022-12-06 11:06:31 13796 10

原创 const常量可不可以被修改

1,使用 C++编译器,“偷偷”修改 const 常量,无效,但是也不报错2,使用 C 语言编译器,可以“偷偷”修改 const 常量。

2022-11-29 23:13:26 378

原创 队列算法的原理和实现,及其企业级应用

队列是一种受限的线性表,(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out)队列是一种受限的线性结构它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。生活中队列场景随处可见: 比如在电影院, 商场, 或者厕所排队。。。。。。顺序存储 :采用数组来保存队列的元素,设立一个队首指针 front ,一个队尾指针 rear,分别指向队首和队尾元素。则rear-front 即为存储的元素个数!

2022-06-01 09:34:07 707

原创 C语言骚操作:printf(&true[“\021%sck\012\0“], true[“have“] + “fro“ - 0X60); 请问打印多少?

#include <stdio.h>#include <stdlib.h>int main(void) { printf(&true["\021%sck\012\0"], true["have"] + "fro" - 0X60); system("pause"); return 0;}\021:表示一个字符\012 是换行符 ‘\n’ 。所有从键盘的输入都是以回车结束的,而回车会产生一个’\n’字符,所以将’\n’连同它之前的字符全部读取并丢弃之后,也就

2022-05-06 21:41:25 672

原创 在类模板中,利用友元函数重载输出运算符 << 时,不加命名空间std会报错,不加 <T> 也会报错

类的头文件:Vector0.h#pragma once#include <iostream>//using namespace std;template <typename T>class Vector0{ public: Vector0(int size = 0); Vector0(const Vector0<T> &other); ~Vector0(void); Vector0& operator=(const Vect

2022-05-04 02:39:36 422

原创 友元函数类模板的写法

// demo 15-11.c#include <iostream>using namespace std;template <typename T>class A{public: A(T t=0); //声明一个友元函数,实现对两个A类对象进行加法操作 template <typename T> friend A<T> addA(const A<T> &a, const A<T> &b);

2022-05-01 18:26:00 467

原创 类模板的声明(.h文件)和实现(.cpp 或.hpp文件)完全分离时,在主函数的实现文件(.cpp)中应该包含的是类模板的实现(.cpp 或.hpp文件)

注意:当类模板的声明(.h文件)和实现(.cpp 或.hpp文件)完全分离,因为类模板的特殊实现,我们应在使用类模板时使用#include 包含 实现部分的.cpp 或.hpp文件。demo.h:#pragma oncetemplate <typename T>class A{public: A(T t=0); T &getT(); A operator +(const A &other); void print();private: T t;

2022-05-01 18:21:52 655

原创 c++ Sleep函数头文件

Sleep的头文件:#include <Windows.h>#include <Windows.h> int main(void) { int a = 0; int sum = 0; while(1) { sum += a; a++; Sleep(1000); //休眠1秒 } system("pause"); return 0;}

2022-05-01 02:49:04 10939 4

原创 多态的本质,及虚函数的基础使用

示例如下:#include <iostream>using namespace std;class Father {public: void play() { cout << "到KTV唱歌..." << endl; }};class Son :public Father {public: void play() { cout << "一起打王者吧!" << endl; }};void party(Fathe

2022-04-27 20:01:09 240

原创 关于赋值运算符“=”的重载问题

赋值运算符的重载,应该使用这种方式:Boy& operator=(const Boy &boy);注意:参数要使用引用!完整代码为:Boy类(所在文件:“Boy.h”):#include <string>using namespace std;class Boy{public: Boy(const char *name = NULL); ~Boy(); Boy& operator=(const Boy& boy); string g

2022-04-23 04:47:19 520

原创 子类型的作用与应用,以及子类型在QT中 QSystemTrayIcon类的构造函数中的使用

一,子类型的作用:在需要父类对象的任何地方, 可以使用”公有派生”的子类的对象来替代,从而可以使用相同的函数统一处理基类对象和公有派生类对象即:形参为基类对象时,实参可以是派生类对象#include <iostream>#include <sstream>using namespace std;class Father {public: void play() { cout << "KTV唱歌!" << endl; }};cl

2022-04-03 09:47:50 215

原创 protected(保护)访问权限

一个类, 如果希望, 它的成员, 可以被自己的子类(派生类)直接访问,但是, 又不想被外部访问那么就可以把这些成员, 定义为 protected访问权限!!!访问权限总结:1.public外部(指对象)可以直接访问.可以通过对象来访问这个成员Fahter wjl(“王健林”, 65);wjl.getName();2.private外部(指对象)不可以访问自己的成员函数内, 可以访问Fahter wjl(“王健林”, 65);wjl.name; // 错误!!!Father内的所

2022-04-03 09:34:23 6056 1

原创 子类对父类成员的访问权限

无论通过什么方式(public、protected、private)继承,在子类内部均可访问父类中的public、protected成员,但private成员不可访问(如果想要子类能够访问,就定义为protected)继承方式只影响外界(指对象)通过子类对父类成员的访问权限。public继承,父类成员的访问权限全部保留至子类;protected继承,父类public成员的访问权限在子类中降至protected;private继承,父类public、protected成员的访问权限在子类中均降至pri

2022-04-03 09:25:20 3231

原创 子类中有多个对象,(1)构建子类对象时,构造函数调用的先后顺序;(2)程序执行结束时,析构函数调用的先后顺序

#include <iostream>using namespace std;class M {public: M() { cout << __FUNCTION__ << endl; } ~M() { cout << __FUNCTION__ << endl; }};class N {public: N() { cout << __FUNCTION__ << endl; } ~N() { cout

2022-04-03 09:08:28 968

原创 如何删除vector中的特定的某一个成员

代码:#include <vector>int main(void) { vector<int> arry; arry.push.back(1); arry.push.back(2); arry.push.back(3); arry.push.back(4); return 0;}如何删除arry中值为3的成员?代码实现为:#include <vector>int main(void) { vector<int> a

2022-02-08 23:42:54 442

原创 关于auto的自动推导的使用

举个例子:auto x = 100;auto y = 3.14;相当于:int x = 100;double y = 3.14;

2022-02-08 22:11:26 197

原创 vector的陷阱

代码示例:#include <iostream>#include <vector>using namespace std;class Man {public: Man() {} void getPlay() { //玩一次喝十杯酒 count += 10; cout << "I'm playing..." << endl; } int getCount() { return count; }private: int

2022-01-24 16:28:32 399

原创 vector容器的使用

使用vector容器时,需要使用头文件#include vector<int> data; //相当于定义了一个变量名为data,且空间可变的数组 data.push_back(1); //赋值时要在尾部插入,相当于data[0] = 1; data.push_back(5); //相当于data[1] = 5; for (int i = 0; i < data.size(); i++) { cout << data[i] << " "; }

2022-01-23 10:18:17 653

原创 const数据成员的初始化;const成员函数;const对象与非const对象

一,const数据成员的初始化方式:1.使用类内值(C++11支持)2.使用构造函数的初始化列表(如果同时使用这两种方式,以初始化列表中的值为最终初始化结果)注意: 不能在构造函数或其他成员函数内,对const成员赋值!对于非const的类静态成员,只能在类的实现文件中初始化。const类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不要同时在这两个地方初始化,只能初始化1次)详细内容请看另一篇博客《静态数据成员与静态成员函数》类内初始值:所在文件:Human.h

2022-01-02 15:10:25 2297

原创 静态数据成员与静态成员函数

需求分析:需要获取总的人数,如何实现?只能使用一个全局变量,然后在构造函数中对这个全局变量进行修改(加1)缺点:使用全局变量不方便,破坏程序的封装性。解决方案:使用类的静态成员。头文件:Human.hclass Human {public: ......int getCount();private: string name = "Unknown"; int age = 28; ...... // 类的静态成员 static int count;};初始化类中的静态成员

2022-01-01 18:34:08 1327

原创 清理工作之析构函数

析构函数作用:对象销毁前,做清理工作。具体的清理工作,一般和构造函数对应比如:如果在构造函数中,使用new分配了内存,就需在析构函数中用delete释放。如果构造函数中没有申请资源(主要是内存资源),那么很少使用析构函数。函数名:~类型没有返回值,没有参数,最多只能有一个析构函数访问权限:一般都使用public使用方法:不能主动调用。对象销毁时,自动调用。如果不定义,编译器会自动生成一个析构函数(什么也不做)#include <iostream>#include

2021-12-31 22:26:34 223

原创 赋值构造函数

赋值构造函数:一,编译器自动合成的构造函数二,自定义的赋值构造函数一,编译器自动合成的构造函数#include <iostream>#include <string>using namespace std;#define ADDR_LEN 64//定义“人类”class Human {public: Human(); //构造函数,可以写在类里面(由内联函数的效果),也可以写在外面 // =运算符的重载 //Human& operator=

2021-12-31 20:05:44 1640

原创 什么时候调用拷贝构造函数

什么时候调用拷贝构造函数:1.调用函数时,实参是对象,形参不是引用类型如果函数的形参是引用类型,就不会调用拷贝构造函数2.函数的返回类型是类,而且不是引用类型3.对象数组的初始化列表中,使用对象。第一种 调用函数时,实参是对象,形参不是引用类型#include <iostream>#include <string>using namespace std;#define ADDR_LEN 64//定义“人类”class Human {public: H

2021-12-31 18:02:20 832

原创 拷贝构造函数

拷贝构造函数:一,合成的拷贝构造函数二,自定义的拷贝构造函数一,合成的拷贝构造函数#include <iostream>#include <string>using namespace std;#define ADDR_LEN 64//定义“人类”class Human {public: Human(); //构造函数,可以写在类里面(由内联函数的效果),也可以写在外面 Human(int age, int salary); void eat();

2021-12-31 16:07:33 481

原创 若语句char a = ‘\72‘; 则变量a包含几个字符?‘\72‘是否在ASCII值的范围之内?

char c;char c;声明它是一个char类型的字符,只有一个字节的内存空间!‘\72’就与这些字符常量’1’, ‘2’, ‘3’, ‘a’, ‘s’, ‘z’, ‘\0’…一样,它也表示一个字符常量字符常量常用单引号括起来!那么,’\72’是否在char类型的值的范围之内呢?char表示的整数范围为 (十进制) :-128~127.换算成二进制 (首位是符号位 ):1000 000 ~ 0111 1111‘\72’:转义字符‘'在数字之前表示八进制数,相当于072,换算成十进制也

2021-12-31 13:45:21 10575 2

原创 自定义的重载构造函数

自定义的重载构造函数:就是自定义的构造函数,一个意思#include <iostream>#include <string>using namespace std;//定义“人类”class Human {public: //公有的, 公共的 //void eat() { //直接在类里面写函数的内容,这样的函数叫做内联函数 //...//} Human(); //构造函数,可以写在类里面(由内联函数的效果),也可以写在外面 Human(int ag

2021-12-30 21:57:59 466

原创 默认构造函数

默认构造函数:没有参数的构造函数,称为默认构造函数。1.合成的默认构造函数但没有手动定义默认构造函数时,编译器自动为这个类定义一个构造函数。1)如果数据成员使用了“类内初始值”,就使用这个值来初始化数据成员。【C++11】2)否则,就使用默认初始化(实际上,不做任何初始化)#include <iostream>#include <string>#include <Windows.h>using namespace std;//定义“人类”clas

2021-12-30 21:26:28 3073

原创 构造函数的作用,特点, 种类

一,构造函数的作用在创建一个新的对象时,自动调用的函数,用来进行“初始化”工作:对这个对象内部的数据成员进行初始化。二,构造函数的特点1)自动调用(在创建新对象时,自动调用)2)构造函数的函数名,和类名相同3)构造函数没有返回类型4)可以有多个构造函数(即函数重载形式)三,构造函数的种类1.默认构造函数2.自定义的构造函数3.拷贝构造函数4.赋值构造函数...

2021-12-30 16:52:06 4319

原创 C++:类的调用

#include <iostream>#include <string>#include <Windows.h>using namespace std;//定义“人类”class Human {public: //公有的, 公共的 void eat(); //类里面的方法,又称为成员函数 void sleep(); void work(); void play(); string getName(); int getAge(); int g

2021-12-30 16:19:51 3952

原创 C++中:无法访问 private 成员

#include <iostream>#include <string>#include <Windows.h>using namespace std;//定义“人类”class Human {public: //公有的, 公共的 void eat(); //类里面的方法,又称为成员函数 void sleep(); void work(); void play(); string getName(); int getAge(); int g

2021-12-30 16:03:53 2164 4

原创 关于《error: 函数“int main(void)”已有主体》的错误

编译器:VC++2010#include <iostream>#include <string>#include <Windows.h>using namespace std;//定义“人类”class Human {public: //公有的, 公共的 void eat(); //类里面的方法,又称为成员函数 void sleep(); void work(); void play(); string getName(); int get

2021-12-30 15:35:16 4306 4

原创 关于指针转换,指针加减的深入理解

代码如下:#include <stdio.h>int main(void) { int a[5] = {1, 2, 3, 4, 5); int *pstr1 = (int*)(&a + 1); int *pstr2 = (int*)((int)a + 1); printf("%x, %x\n", *pstr1[-1], *pstr2); return 0;}输出结果为:5 2000005可以明白怎么得到的,但是为什么会出现200000?请看图!(地址为小端

2021-12-26 21:27:50 232

原创 关于char类型的值的周期

#include <stdio.h>#incldue <string.h>#incldue <stdlib.h>int main(void) { char a[1000]; for(int i=0; i<1000; i++) { //-1 -2 -3 -4 -5 -7 ... -126 -127 -128 127 126 125 ... 2 1 0 a[i] = -1 - i; } printf("%d\n", strlen(a));

2021-12-26 20:52:24 217

没有合适的默认构造函数,默认构造函数怎么写?为什么这样写?没有写赋值构造函数

没有合适的默认构造函数,默认构造函数怎么写?为什么这样写?没有写赋值构造函数

2022-05-05

c++ 类 虚函数列表及其内存分布

c++ 类 虚函数列表及其内存分布

2022-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除