From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- doc/html/qguardedptr.html | 194 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 doc/html/qguardedptr.html (limited to 'doc/html/qguardedptr.html') diff --git a/doc/html/qguardedptr.html b/doc/html/qguardedptr.html new file mode 100644 index 000000000..b62e95867 --- /dev/null +++ b/doc/html/qguardedptr.html @@ -0,0 +1,194 @@ + + + + + +TQGuardedPtr Class + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

TQGuardedPtr Class Reference

+ +

The TQGuardedPtr class is a template class that provides guarded pointers to TQObjects. +More... +

#include <qguardedptr.h> +

List of all member functions. +

Public Members

+ +

Detailed Description

+ + +The TQGuardedPtr class is a template class that provides guarded pointers to TQObjects. +

+ +

A guarded pointer, TQGuardedPtr<X>, behaves like a normal C++ +pointer X*, except that it is automatically set to 0 when +the referenced object is destroyed (unlike normal C++ pointers, +which become "dangling pointers" in such cases). X must be a +subclass of TQObject. +

Guarded pointers are useful whenever you need to store a pointer +to a TQObject that is owned by someone else and therefore might be +destroyed while you still hold a reference to it. You can safely +test the pointer for validity. +

Example: +

+        TQGuardedPtr<TQLabel> label = new TQLabel( 0, "label" );
+        label->setText( "I like guarded pointers" );
+
+        delete (TQLabel*) label; // simulate somebody destroying the label
+
+        if ( label)
+            label->show();
+        else
+            qDebug("The label has been destroyed");
+    
+ +

The program will output The label has been destroyed rather +than dereferencing an invalid address in label->show(). +

The functions and operators available with a TQGuardedPtr are the +same as those available with a normal unguarded pointer, except +the pointer arithmetic operators (++, --, -, and +), which are +normally used only with arrays of objects. Use them like normal +pointers and you will not need to read this class documentation. +

For creating guarded pointers, you can construct or assign to them +from an X* or from another guarded pointer of the same type. You +can compare them with each other using operator==() and +operator!=(), or test for 0 with isNull(). And you can dereference +them using either the *x or the x->member notation. +

A guarded pointer will automatically cast to an X*, so you can +freely mix guarded and unguarded pointers. This means that if you +have a TQGuardedPtr, you can pass it to a function that +retquires a TQWidget*. For this reason, it is of little value to +declare functions to take a TQGuardedPtr as a parameter; just use +normal pointers. Use a TQGuardedPtr when you are storing a pointer +over time. +

Note again that class X must inherit TQObject, or a compilation +or link error will result. +

See also Object Model. + +


Member Function Documentation

+

TQGuardedPtr::TQGuardedPtr () +

+ +

Constructs a 0 guarded pointer. +

See also isNull(). + +

TQGuardedPtr::TQGuardedPtr ( T * p ) +

+ +

Constructs a guarded pointer that points to same object as p +points to. + +

TQGuardedPtr::TQGuardedPtr ( const TQGuardedPtr<T> & p ) +

+ +

Copy one guarded pointer from another. The constructed guarded +pointer points to the same object that p points to (which may +be 0). + +

TQGuardedPtr::~TQGuardedPtr () +

+ +

Destroys the guarded pointer. Just like a normal pointer, +destroying a guarded pointer does not destroy the object being +pointed to. + +

bool TQGuardedPtr::isNull () const +

+ +

Returns TRUE if the referenced object has been destroyed or if +there is no referenced object; otherwise returns FALSE. + +

TQGuardedPtr::operator T * () const +

+ +

Cast operator; implements pointer semantics. Because of this +function you can pass a TQGuardedPtr<X> to a function where an X* +is retquired. + +

bool TQGuardedPtr::operator!= ( const TQGuardedPtr<T> & p ) const +

+ +

Inequality operator; implements pointer semantics, the negation of +operator==(). Returns TRUE if p and this guarded pointer are +not pointing to the same object; otherwise returns FALSE. + +

T & TQGuardedPtr::operator* () const +

+ +

Dereference operator; implements pointer semantics. Just use this +operator as you would with a normal C++ pointer. + +

T * TQGuardedPtr::operator-> () const +

+ +

Overloaded arrow operator; implements pointer semantics. Just use +this operator as you would with a normal C++ pointer. + +

TQGuardedPtr<T> & TQGuardedPtr::operator= ( const TQGuardedPtr<T> & p ) +

+ +

Assignment operator. This guarded pointer then points to the same +object as p points to. + +

TQGuardedPtr<T> & TQGuardedPtr::operator= ( T * p ) +

+This is an overloaded member function, provided for convenience. It behaves essentially like the above function. +

Assignment operator. This guarded pointer then points to the same +object as p points to. + +

bool TQGuardedPtr::operator== ( const TQGuardedPtr<T> & p ) const +

+ +

Equality operator; implements traditional pointer semantics. +Returns TRUE if both p and this guarded pointer are 0, or if +both p and this pointer point to the same object; otherwise +returns FALSE. +

See also operator!=(). + + +


+This file is part of the TQt toolkit. +Copyright © 1995-2007 +Trolltech. All Rights Reserved.


+ +
Copyright © 2007 +TrolltechTrademarks +
TQt 3.3.8
+
+ -- cgit v1.2.1