`
haouziwefe
  • 浏览: 125789 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Qt4.7中 默认的构造函数

阅读更多

    <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()&lt;&lt;"构造器开始";
    //初始化对象
    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>
 
分享到:
评论

相关推荐

    qt4.7的api

    在QT 4.7中,主要的组件包括以下几个部分: 1. **核心框架**:这是Qt的基础,提供了数据结构、事件处理、线程支持和网络编程等功能。核心类如`QObject`、`QEvent`、`QString`、`QList`等在此部分定义,它们构成了Qt...

    QT4.7安装配置详细步骤及其错误分析

    如果编译时出现错误提示找不到tslib相关函数,需要将tslib相关的库文件复制到Qt4.7安装目录下lib文件夹中。 4. 错误分析与解决方案 在安装过程中,可能会遇到各种编译错误,比如找不到某些函数的引用。这些错误往往...

    C++ 默认构造函数

    C++ 默认构造函数是编程语言C++中一个关键的概念,主要涉及到类的实例化和对象初始化。当程序员没有显式地定义任何构造函数时,C++编译器会自动为类提供一个默认构造函数,这个构造函数是无参数的,其主要任务仅仅是...

    qt4.7 例子源码

    在Qt4.7中,窗口显示的风格主要由QStyle和QStyleSheet两大组件来控制。QStyle是Qt的核心风格引擎,它定义了控件的外观和行为,比如按钮、菜单、滑块等。这个库提供了多种内置风格,如Windows、Mac OS X以及GTK+等,...

    qt4.7-linux开发板的lib

    QT4.7是一个针对Linux平台的图形用户界面库,它为开发者提供了丰富的API来构建桌面及嵌入式系统的应用程序。这个压缩包包含的是为Linux开发板编译的QT4.7库,特别是针对ARM架构的非Linux标准环境(通常称为arm-none-...

    qt 4.7 商业版 Commercial 种子 下载

    在QT 4.7版本中,商业版与开源版的主要区别在于许可证和服务。商业版提供更广泛的技术支持和定制服务,适合大型企业和需要专业服务的开发者。它包括了对源代码的访问,允许企业根据自身需求进行定制和修改。此外,...

    编译好的Qt4.7

    编译好的Qt4.7 还需要一个脚本配置一下就可以使用了,在tiny6410上验证过,脚本本人资源中有 交叉编译链4.5.1

    QT4.7下的扫雷游戏

    QT4.7是一个古老的版本,它是Qt库的一个里程碑,提供了丰富的功能用于开发跨平台的图形用户界面应用程序。在这个环境中创建的扫雷游戏,是利用Qt的C++接口和图形库来实现的。让我们深入探讨一下这个项目可能涉及的几...

    Qt4.7的范例(Demos)

    在Qt4.7中,图形视图框架是一个强大的组件,用于构建复杂的2D图形界面。Demo展示了如何使用GraphicsScene、GraphicsView和QGraphicsItem等类创建可缩放、可拖动的图形界面,以及如何实现交互效果。 3. **网络编程*...

    Qt4.7 利用Painter drawPie绘制螺旋波形

    在本文中,我们将深入探讨如何使用Qt 4.7中的Painter类来绘制螺旋波形,这是一种近似于正弦波的图形。Qt是一个强大的跨平台应用程序开发框架,它提供了丰富的图形用户界面(GUI)功能,包括自定义图形绘制。在这个...

    qt-4.7库文件

    2. **触摸lib**:在Qt 4.7中,对触摸输入的支持得到了加强,使得开发者可以方便地创建适应触摸屏设备的应用程序。这包括新的触摸事件类型、触摸点管理和手势识别,使得在平板电脑或智能手机等设备上的交互变得更加...

    基于qt4.7图片浏览器

    在这个项目中,我们将探讨如何利用Qt4.7来构建一个基础但实用的图片查看器。 **1. Qt4.7核心组件** Qt4.7包含许多核心组件,如QWidgets、QGraphicsView、QNetworkAccessManager等。对于图片浏览器来说,QWidgets...

    qt4.7编写的网络监控源码

    1. **网络通信**:Qt4.7中的QNetworkAccessManager类是网络访问的主要接口,它允许程序发起HTTP、FTP等网络请求,并管理这些请求的响应。通过创建QNetworkRequest对象,我们可以设置URL、HTTP头等信息,然后调用...

    C++ GUI Qt4.7编程+源码

    在C++ GUI Qt4.7编程中,首先需要了解Qt的基本概念,如Qt对象模型、信号与槽机制以及事件处理。Qt对象模型是其设计的核心,所有的Qt对象都继承自QObject类,这使得它们可以支持事件处理和信号与槽机制。信号与槽机制...

    qt4.7-sdk-win-opensource-2010.05.part4.rar

    qt一般开源的,需要在平台...)编译好的windows平台下安装版本QT4.7,xp和win7(32位)(其余系统没有测试)都可以学习用。有QT自己的IDE(集成开发环境),不用嵌入vc中。 分割为6个部分上传。解压为exe下载请注意防毒

    qt4.7-sdk-win-opensource-2010.05.part3.rar

    qt一般开源的,需要在平台...)编译好的windows平台下安装版本QT4.7,xp和win7(32位)(其余系统没有测试)都可以学习用。有QT自己的IDE(集成开发环境),不用嵌入vc中。 分割为6个部分上传。解压为exe下载请注意防毒

    qt4.7版本的oracle驱动

    Qt 4.7 版本的 Oracle 驱动是一个专为Qt应用程序设计的数据库连接组件,用于在Windows平台上与Oracle数据库系统(版本10.2.0)进行交互。这个驱动程序是针对Qt 4.7框架进行编译的,以确保与该版本的Qt库兼容性。在...

Global site tag (gtag.js) - Google Analytics