3.0 KiB
3.0 KiB
一,C++基础
1,构造函数:
用来初始化对象
(1)默认构造
(2)带参数构造
(3)拷贝构造函数
//带参数构造
//格式
class Student {
public:
int m_age;//参数一
int m_score;//参数二
Student(int age, int score) :m_age(age),m_score(score)
{
//初始化操作
void init();
void init1();
void init2();
}
}
2,析构函数:
用来释放资源
//带参数构造
//格式
class Student {
public:
~Student();
}
Student::~Student()
{
delete ui;//此处我默认了ui已经由构造函数分配了堆——内存,所以我要在析构函数里面释放内存
}
3,成员函数
//类定义
class Student {
public:
void inital();
}
//成员函数主题
void Student::inital()
{
}
二,QT类关系
三,信号与槽
四,QT定时器
五,QT多线程
六,QT实现客户端与服务器
七,代码问题
1,ui界面不显示
有一个变量使用了,生命周期特别长,但是没有正确分配内存导致ui界面不显示
需要new一块内存用来存储
需要new的特点:
1,实例化对象,生命周期特别长不能像变量一样随时随地用了销毁
(1) 与 new
的比较(C++ 视角)
特性 | malloc (C) |
new (C++) |
---|---|---|
语言 | C 语言标准库函数 | C++ 操作符 |
初始化 | 不初始化,内容随机 | 调用构造函数,初始化对象 |
返回类型 | void* ,需强制转换 |
自动返回正确类型的指针 |
释放方式 | free |
delete |
异常处理 | 不支持异常 | 支持异常,失败时抛出 std::bad_alloc |
适用场景 | C 程序或需要与 C 交互的 C++ 程序 | 纯 C++ 程序 |
也就是说如果我要用到一个变量,直到它生命周期结束才被销毁,那么我就可以new一个对象
(2)内存泄漏:new了但不delete
1,类似“水龙头未关”(代码分配了内存但未释放),水(内存)持续流出但无法回收
2,打满了一桶水洗脸,但是洗完脸不丢掉,一直占用资源
所以new了不delete有两种后果:一直在new对象的渣男,或者,new了对象之后就捆绑住不让放开的恋爱脑
八,打包方法
1:首先发布release
2: 把exe文件拷贝出来 随便放一个位置
3: 在菜单 开始那里 找到如下(qt5.9 for Desktop(mingw )), 在输入命令 就是定位你上一步放.exe文件的地方
4:输入 cd <exe文件所在位置>
5:输入 windeployqt <x'x'x>.exe
打包完成