QT_Study/QT学习.md
2025-05-29 13:03:41 +08:00

123 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

```c++
```
# 一C++基础
## 1构造函数
```
用来初始化对象
(1)默认构造
(2)带参数构造
(3)拷贝构造函数
```
```c++
//带参数构造
//格式
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析构函数
```
用来释放资源
```
```C++
//带参数构造
//格式
class Student {
public:
~Student();
}
Student::~Student()
{
delete ui;//此处我默认了ui已经由构造函数分配了堆——内存所以我要在析构函数里面释放内存
}
```
## 3成员函数
```C++
//类定义
class Student {
public:
void inital();
}
//成员函数主题
void Student::inital()
{
}
```
# 二QT类关系
# 三,信号与槽
# 四QT定时器
# 五QT多线程
# 六QT实现客户端与服务器
# 七,代码问题
## 1ui界面不显示
```
有一个变量使用了生命周期特别长但是没有正确分配内存导致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了对象之后就捆绑住不让放开的恋爱脑**