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

📄 qguardedptr-h.html

📁 QT 下载资料仅供参考
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/include/qguardedptr.h:1 --><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="Translator" content="Cavendish"><meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt"><title>qguardedptr.h包含文件</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: #ffffff; color: black; font-family: "Times New Roman" }--></style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr bgcolor="#E5E5E5"><td valign=center> <a href="index.html"><font color="#004faf">主页</font></a> | <a href="classes.html"><font color="#004faf">所有的类</font></a> | <a href="mainclasses.html"><font color="#004faf">主要的类</font></a> | <a href="annotated.html"><font color="#004faf">注释的类</font></a> | <a href="groups.html"><font color="#004faf">分组的类</font></a> | <a href="functions.html"><font color="#004faf">函数</font></a></td><td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>qguardedptr.h</h1><p>这里是qguardedptr.h包含文件的所有文本,一字不差。它仅仅用来说明,版权由Trolltech保留。<hr><pre>/****************************************************************************** $Id$**** 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 QObject, public QShared{    Q_OBJECTpublic:    QGuardedPtrPrivate( QObject* );    ~QGuardedPtrPrivate();    QObject* object() const;    void reconnect( QObject* );private slots:    void objectDestroyed();private:    QObject* obj;};template &lt;class T&gt;class QGuardedPtr{public:    QGuardedPtr() : priv( new QGuardedPtrPrivate( 0 ) ) {}    QGuardedPtr( T* o) {	priv = new QGuardedPtrPrivate( (QObject*)o );    }    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) {	if ( priv-&gt;count == 1 ) {	    priv-&gt;reconnect( (QObject*)o );	} else {	    deref();	    priv = new QGuardedPtrPrivate( (QObject*)o );	}	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><!-- eof --><p><address><hr><div align=center><table width=100% cellspacing=0 border=0><tr><td>Copyright &copy; 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a><td><a href="zh_CN.html">译者:Cavendish</a><td align=right><div align=right>Qt 3.0.5版</div></table></div></address></body></html>

⌨️ 快捷键说明

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