正确理解Qt中构造函数:Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)
#include <iostream>
using namespace std;
class Base
{
public:
Base():m_num(0){
cout << "this is Base()" << endl;
}
Base(int val):m_num(val + 1){
cout << "this is Base(int val) and m_num = " << m_num << endl;
}
private:
int m_num;
};
class BaseChild : public Base
{
public:
BaseChild(){
cout << "this is BaseChild()" << endl;
}
BaseChild(int val) : Base(val), m_num(val){
cout << "this is BaseChild(int val) and m_num = " << m_num << endl;
}
private:
int m_num;
};
int main(int argc, char *argv[])
{
BaseChild child1;
BaseChild child2(5);
return 0;
}
输出结果:
this is Base()
this is BaseChild()
this is Base(int val) and m_num = 6
this is BaseChild(int val) and m_num = 5
BaseChild是类, ::是作用域,::后面的BaseChild(int val)是构造函数,:后面的Base(val)是指定基类的构造函数,不明确指定的话是默认构造函数,n_num(val) 是对BaseChild类里面的成员变量做初始化。
Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)
理解:
Widget是类, ::是作用域,::后面的Widget(QWidget *parent)是构造函数,
:后面的 QWidget(parent)是指定基类的构造函数,不明确指定的话是默认构造函数,
ui(new Ui::Widget) 是对BaseChild类里面的成员变量做初始化。
本文借鉴:https://blog.csdn.net/qq_41827665/article/details/84213220
来源:CSDN
作者:GouplovXim1314
链接:https://blog.csdn.net/GouplovXim1314/article/details/104349423