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;
}
热门推荐
北京安贞医院通州院区交通指南(公交+地铁+自驾)
电解水制氢金属粉末市场规模、发展趋势及主要生产厂商产能
环境污染怎样维护合法权益
民间故事与神话故事的区分:定义、起源、特点与实例解析
小程序开发全面解析:从零开始到项目落地的全程指南
孙悟空的名字“悟空”,有何深意?藏着人生大智慧
哪种实木家具好?老师傅剖析10种常用木材,让你不掉坑!
励志培养品行的名言
中国大陆高中教育全解析:分类、重点高中推荐及国际课程趋势
闲鱼变革:迷失的二手交易平台如何重塑信任与体验?
猫粮工艺与标准深度解析
忘记签劳动合同被员工起诉怎么办?补救措施与法律建议
专家畅谈未来天文馆发展方向:鼓励观众自我学习,“分享整个宇宙”
环保局管啥的
粉煤灰检测标准及方法
别再妖魔化米面!碳水不是糖尿病的敌人!
花馒头的做法花样大全(6款花样馒头!)
恒生指数的构成和意义是什么?这种构成和意义如何反映市场趋势?
中国科大突破锂电池绿色回收技术,同步实现锂回收与能量输出
喜多郁代:动漫中的阳光少女
中国最好的十家中医院
养龟前要准备什么?打造理想养龟环境的步骤
湿气重则百病生!这四个细节说明你湿气过重
深入解析,汽车检测距离的传感器技术及其应用
怎样让脾胃强壮起来:强健脾胃的4个方法
Excel表格制作技巧:快捷键、样式、分析工具与模板全方位指南
央美国美清美哪个好考?难度对比及备考攻略!
银行存款利率一夜大改!存款一万元,一年能领多少钱
银行的理财产品收益再投资方式?
从兵马俑看大气腐蚀:不可忽视的 “破坏因子”