QT及C++中的构造函数与析构函数
创作时间:
作者:
@小白创作中心
QT及C++中的构造函数与析构函数
引用
CSDN
1.
https://m.blog.csdn.net/xieliru/article/details/137581028
一.概念
1.什么是构造函数
类的构造函数 是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void 。构造函数可用于为某些成员变量设置初始值。
2.什么是析构函数
析构函数是 C++ 中的一个特殊的成员函数,它在对象生命周期结束时被自动调用,用于执行对象销毁前的清理工作。析构函数特别重要,尤其是在涉及动态分配的资源(如内存、文件句柄、网络连接等)的情况下。
基本特性
- 名称 :析构函数的名称由波浪号( ~ )后跟类名构成,如 ~MyClass() 。
- 无返回值和参数 :析构函数不接受任何参数,也不返回任何值。
- 自动调用 :当对象的生命周期结束时(例如,一个局部对象的作用域结束,或者使用 delete 删除一个动态分配的对象),析构函数会被自动调用。
- 不可重载 :每个类只能有一个析构函数。
- 继承和多态 :如果一个类是多态基类,其析构函数应该是虚的。
二.C++示例
1.标准C++构造函数及类成员变量初始化:方法一
class Car {
public:
QString brand;
int year;
Car(QString b, int y) {
brand = b;
year = y;
qDebug() << "有参数构造函数调用";
}
void display() {
qDebug() << "Brand: " << brand << ", Year: " << year;
}
};
int main(int argc, char *argv[]) {
Car myCar("小米SU7", 2024);
myCar.display();
}
输出:
有参数构造函数调用
Brand: "小米SU7" , Year: 2024
2.标准C++构造函数及类成员变量初始化:方法二
class Car {
public:
QString brand;
int year;
Car(QString b, int y) : brand(b), year(y) {
qDebug() << "有参数构造函数调用";
}
void display() {
qDebug() << "Brand: " << brand << ", Year: " << year;
}
};
int main(int argc, char *argv[]) {
Car myCar("小米SU7", 2024);
myCar.display();
}
输出:
有参数构造函数调用
Brand: "小米SU7" , Year: 2024
三.QT中的构造函数与析构函数
1.建立一个mainwindow类工程
(1)mainwindow.h
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
int m_nrot;
float value;
};
(2)mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow) {
ui->setupUi(this);
}
MainWindow::~MainWindow() {
delete ui;
}
其中:
MainWindow(QWidget *parent = nullptr);即为构造函数~MainWindow();即为析构函数
2.类成员初始化方法
a.mainwindow.h 不用变化
b.mainwindow.cpp修改如下:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), m_nrot(1), value(0.2), ui(new Ui::MainWindow) {
ui->setupUi(this);
qDebug() << m_nrot << value;
}
MainWindow::~MainWindow() {
delete ui;
}
热门推荐
23家银行最新存款利率比较:城商行利率更高,存哪家最划算?
西安旅游住宿攻略:市中心区域的十大优势
癌症早筛,这回轮到中国AI表演了
供暖工程客户管理指南:从沟通到售后服务的全方位策略
护理专业就业现状及就业前景
《执笔》破圈,给内卷精品短剧带来新思路?
墨尔本工资水平全解析:高薪行业、生活成本与就业机会
哪吒领跑,中国电影市场能否借最强春节档迎来新曙光?
热感冒如何快速治愈
情感挽回的两大误区,你都知道吗?
7类取暖电器全测评!“吃电大户”竟然是节能王?
王翰:《凉州词》作者的传奇人生
揭开图灵测试的面纱:人工智能是否真正拥有智能?
新中式美学启思录 3.0|只火不爆?新中式美学与消费市场的相对论
提升自我表达能力的方法|美丽妆阁
怎样使用图片时合法标明来源
需要八字(看八字需要提供什么信息)
喉咙里有痰,老是咳不出来怎么办?这种别当咽炎治,中医教你化痰
从人机界面设计黄金三法则视角看 ChatGPT 的界面设计的“好”与“坏”
电脑音箱到底选择 2.1 的还是 2.0 的 侧重点各是什么
如何查询A股的PE值?这种查询方法有哪些技巧?
《惊奇队长》中角色塑造,及其对女性超级英雄形象,有什么影响?
音频后期制作全流程解析:从编辑到母带处理
精准灌溉管理:提升农业生产效率的关键!
时光里丨披甲戴胄 他把小时候的梦穿在身上
从《直到黎明》到《8020号指令》,“互动叙事游戏”走过的这十年
社交媒体推动浪漫奇幻小说在英国图书市场销量激增
孩子两岁半了不会说话怎么办?可能的原因及应对方法
民航局如何制定飞机退票政策?一文详解退票费规定
过期保养品的妙用:从清洁到护理的全方位指南