⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qguardedptr-h.html

📁 qtopiaphone英文帮助,用于初学者和开发人员,初学者可以用来学习,开发人员可以用来资料查询.
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Qt Toolkit - qguardedptr.h include file</title><style type="text/css"><!--h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }a:link { color: #004faf; text-decoration: none }a:visited { color: #672967; text-decoration: none }body { background: white; color: black; }--></style></head><body bgcolor="#ffffff"><table width="100%"><tr><td><a href="index.html"><img width="100" height="100" src="qtlogo.png"alt="Home" border="0"><img width="100"height="100" src="face.png" alt="Home" border="0"></a><td valign="top"><div align="right"><img src="dochead.png" width="472" height="27"><br><a href="classes.html"><b>Classes</b></a>- <a href="annotated.html">Annotated</a>- <a href="hierarchy.html">Tree</a>- <a href="functions.html">Functions</a>- <a href="index.html">Home</a>- <a href="topicals.html"><b>Structure</b>  <font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" align="center" size=32>Qte</font></a></div></table><h1 align=center>qguardedptr.h</h1><br clear="all">This is the verbatim text of the qguardedptr.h include file.  It isprovided only for illustration; the copyrightremains with Trolltech.<hr><pre>/****************************************************************************** &#36;Id&#58; qt/src/kernel/qguardedptr.h   2.3.8   edited 2004-05-12 $**** Definition of QGuardedPtr class**** Created : 990929**** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.**** This file is part of the kernel module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QGUARDEDPTR_H#define QGUARDEDPTR_H#ifndef QT_H#include "qobject.h"#endif // QT_Hclass Q_EXPORT QGuardedPtrPrivate : public  <a href="qobject.html">QObject</a>, public <a href="qshared.html">QShared</a>{    Q_OBJECTpublic:    QGuardedPtrPrivate( QObject*);    ~QGuardedPtrPrivate();    QObject* object() const;private slots:    void objectDestroyed();private:    QObject* obj;};template &lt;class T&gt; class Q_EXPORT QGuardedPtr{public:    QGuardedPtr()    {        priv = new QGuardedPtrPrivate( 0 );    }    QGuardedPtr( T* o)    {#if defined(Q_TEMPLATE_NEEDS_EXPLICIT_CONVERSION)        priv = new QGuardedPtrPrivate( (QObject*)o );#else        priv = new QGuardedPtrPrivate( o );#endif    }    QGuardedPtr(const QGuardedPtr&lt;T&gt; &amp;p)    {        priv = p.priv;        ref();    }    ~QGuardedPtr()    {        deref();    }    QGuardedPtr&lt;T&gt; &amp;operator=(const QGuardedPtr&lt;T&gt; &amp;p)    {        if ( priv != p.priv ) {            deref();            priv = p.priv;            ref();        }        return *this;    }    QGuardedPtr&lt;T&gt; &amp;operator=(T* o)    {        deref();#if defined(Q_TEMPLATE_NEEDS_EXPLICIT_CONVERSION)        priv = new QGuardedPtrPrivate( (QObject*)o );#else        priv = new QGuardedPtrPrivate( o );#endif        return *this;    }    bool operator==( const QGuardedPtr&lt;T&gt; &amp;p ) const    {        return priv-&gt;object() == p.priv-&gt;object();    }    bool operator!= ( const QGuardedPtr&lt;T&gt;&amp; p ) const    {        return !( *this == p );    }    bool isNull() const    {        return !priv-&gt;object();    }    T* operator-&gt;() const    {        return (T*) priv-&gt;object();    }    T&amp; operator*() const    {        return *( (T*)priv-&gt;object() );    }    operator T*() const    {        return (T*) priv-&gt;object();    }private:    void ref()    {        priv-&gt;ref();    }    void deref()    {        if ( priv-&gt;deref() )            delete priv;    }    QGuardedPtrPrivate* priv;};inline QObject* QGuardedPtrPrivate::object() const{    return obj;}#endif</pre><p><address><hr><div align="center"><table width="100%" cellspacing="0" border="0"><tr><td>Copyright 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -