<p><span style="font-size: medium;">初学Qt,
发现每个
例子自带的
构造函数:</span></p>
<p><span style="font-size: medium;">Network.h
头文件</span></p>
<p>?</p>
<pre name="code" class="cpp">#include "NetServerThread.h"
class Network : public QObject
{
Q_OBJECT
public:
Network(QObject *parent = 0); //因为QObject *parent为默认参数已经赋值,所以此构造
//函数为 Network类的默认构造函数
~Network();
};</pre>
<p>?Network.cpp</p>
<p>?</p>
<p>?</p>
<pre name="code" class="cpp">#include "NetServerThread.h"
Network::Network(QObject *parent)//这里写的构造函数的参数是为了初始化QObject参数parent,
:QObject(parent) //这样它可以继承父类QObject初始化的所有数据。
{ //该默认构造函数,实例化类时候只需要 Network network;
qDebug()<<"
构造器开始";
//初始化对象
init();
}
Network::~Network()
{
}</pre>
<p>?</p>
<p><span style="font-size: medium;">?实例化Network类的时候,只需要</span></p>
<p><span style="font-size: medium;">Network network;</span></p>
<p><span style="font-size: medium;">即可调用默认构造函数,不需要写默认参数QObject* parent的值</span></p>
<p>?</p>
<p>?</p>
<p>?</p>
<div class="quote_title"><br>
<div class="quote_div">“默认实参必须是函数参数表中最右边(尾部)的参数<br>调用具有两个或多个默认实参数的函数时,如果省略的不是参数表中最右边的参数,则该参数右边的所有参数也应省略<br>默认实参应在函数名第一次出现时指定,通常是在函数原型中”
<p>?</p>
<p>?<span style="font-size: small;">比如说下面的函数</span></p>
<p><span style="font-size: small;">int fun(int a,int b,int c=3)</span></p>
<p><span style="font-size: small;">{</span></p>
<p><span style="font-size: small;"><br></span></p>
<p><span style="font-size: small;">}</span></p>
<p><span style="font-size: small;">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。</span></p>
<p><span style="font-size: small;">为什么默认实参必须是函数参数表中最右边的参数。把上面的函数改下</span></p>
<p><span style="font-size: small;">int fun(int a=3,int b,int c)</span></p>
<p><span style="font-size: small;">{}</span></p>
<p><span style="font-size: small;">这样调用fun(1,2),这样就是a=1,b=2,而c根本就没有赋到值,就出错了。这些参数都是一一对应的。</span></p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>参考文章:</p>
<p><a style="color: #000000; text-decoration: none; font-family: 'Microsoft YaHei'; font-size: 20px; line-height: 30px; text-align: left;" title="C/C++--C++默认参数及其所引起的二义性" href="http://blog.csdn.net/wudemiao1246403394/article/details/6992487">C/C++--C++默认参数及其所引起的二义性</a></p>
<p><a href="http://blog.sina.com.cn/s/blog_6340cd9c0100rabk.html"></a></p>
<h2 id="t_6340cd9c0100rabk" class="titName SG_txta"><a href="http://blog.sina.com.cn/s/blog_6340cd9c0100rabk.html">QT构造函数中*parent</a></h2>
<p><a href="http://blog.sina.com.cn/s/blog_6340cd9c0100rabk.html"><span>?</span></a></p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>