Qt4.7中 默认的构造函数
初学Qt,发现每个例子自带的构造函数:
Network.h头文件
?
#include "NetServerThread.h"Network::Network(QObject *parent)//这里写的构造函数的参数是为了初始化QObject参数parent, :QObject(parent) //这样它可以继承父类QObject初始化的所有数据。 { //该默认构造函数,实例化类时候只需要 Network network; qDebug()<<"构造器开始"; //初始化对象 init();}Network::~Network(){}?
?实例化Network类的时候,只需要
Network network;
即可调用默认构造函数,不需要写默认参数QObject* parent的值
?
?
?
?
?比如说下面的函数
int fun(int a,int b,int c=3)
{
}
c就是指定的默认实参,通常在函数原型中指定。这里给了3作为默认参数。用平常的时候调用这个函数fun(4,5,6);那么就是a=4,b=4,c=6。如果这样调用fun(1,2)那么就是a=1,b=2,c=3,这里c没有指定,因为c是默认实参,已经有了默认值,这里c就是采用默认值3。
为什么默认实参必须是函数参数表中最右边的参数。把上面的函数改下
int fun(int a=3,int b,int c)
{}
这样调用fun(1,2),这样就是a=1,b=2,而c根本就没有赋到值,就出错了。这些参数都是一一对应的。
?
?
?
参考文章:
C/C++--C++默认参数及其所引起的二义性
?
?
?
?
?