Qt重写默认构造函数

原创 2013年12月04日 08:56:41

QT中默认的构造函数定义如下:

#include "NetServerThread.h"

class Network : public QObject
{
    Q_OBJECT

public:
    Network(QObject *parent = 0); //因为QObject *parent为默认参数已经赋值,所以此构造
                                                 //函数为 Network类的默认构造函数
    ~Network();
};

#include "NetServerThread.h"

Network::Network(QObject *parent)//这里写的构造函数的参数是为了初始化QObject参数parent,
   :QObject(parent)       //这样它可以继承父类QObject初始化的所有数据。                                                  
{                              //该默认构造函数,实例化类时候只需要 Network network;
    //初始化对象
    init();
}

Network::~Network()
{
}

其中,构造函数声明中的QObject *parent = 0表示默认参数,如果构造函数中还有其他参数,则应该满足:默认参数必须是函数参数列表中最右边的参数,而且声明的时候,默认参数可以不添加。

所以,如果想在上面的构造函数中添加其他的参数,则构造函数应该这么写:

#include "NetServerThread.h"

class Network : public QObject
{
    Q_OBJECT

public:
    Network(QString name,QObject *parent = 0); //因为QObject *parent为默认参数已经赋值,所以此构造
                                                 //函数为 Network类的默认构造函数
    ~Network();
};
将新添加的参数放在左边,默认参数放在右边。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Qt 带自定义参数的构造函数

Qt中带自定义的构造函数事实上和C++的构造函数一样,但又有些不同。 例如: class DataTerminal : public QMainWindow {   Q_OBJECT p...
  • qustdjx
  • qustdjx
  • 2012年09月27日 17:14
  • 7618

Qt错误提示:没有合适的默认构造函数可用

Qt提示:没有合适的默认构造函数可用

[Qt]如何写一个QDialog界面的构造函数的重载

今天做一个QDialog,ui界面,是一个多界面项目中的某个子界面,需要通过主界面的click事件来初始化子界面,并且传如一个参数。传参数有很多办法,我想简单点直接通过重载构建函数来完成。但是如果真的...

Qt构造函数parent参数

Qt 构造函数parent参数
  • jh1513
  • jh1513
  • 2016年08月25日 09:21
  • 675

关于QT/C++中explicit关键字和构造函数的*parent参数的简单说明

一、explicit关键字 1.   explicit是C++中的关键字,不是C语言中的,英文直译是“明确的”、“显式的”意思。 2. 出现这个关键字的原因,是在C++中有这样规定的基础上: 当定义...

QT构造函数中*parent

文章仅仅是用来说明一下一个参数的作用   程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的(定义...

[Q学习]3 QObject的拷贝构造函数与赋值运算符

本文主要是针对QObject的拷贝构造函数和赋值运算符进行说明。先来看一下拷贝构造函数定义:拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初...
  • taohe_0
  • taohe_0
  • 2016年05月02日 16:15
  • 964

Qt默认构造函数之关键字

explicit其实是C++中的关键字。 其主要的作用是禁止进行隐式转换,但是该关键字仅能修饰构造函数,且构造函数需满足只有一个参数的情况。 也就是说,使用该关键字修饰构造函数后,不能进行其他类型到构...

C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别

初始化和赋值对内置类型的成员没有什么大的区别,像任一个构造函数都可以。但有的时候必须用带有初始化列表的构造函数: (1) 成员类型是没有默认构造函数的类。若没有提供显式初始化时,则编译器隐式...
  • hyqsong
  • hyqsong
  • 2015年07月27日 16:21
  • 1586

c++构造函数成员初始化中赋值和初始化列表两种方式的区别

先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性:      a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数      b. 成员是常量或引用:...
  • zizi7
  • zizi7
  • 2016年08月31日 11:26
  • 4523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt重写默认构造函数
举报原因:
原因补充:

(最多只允许输入30个字)