]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/doxygen/overviews/refcount.h
wxVector<T> is header-based, use @nolibrary
[wxWidgets.git] / docs / doxygen / overviews / refcount.h
index 5feb42767ee9aa1530c1f766d4c6a720852d78b1..48a2bf1bb7d5cb94de042b29ab0aceab416fe648 100644 (file)
@@ -6,7 +6,7 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-/*!
+/**
 
 @page overview_refcount Reference Counting
 
@@ -52,8 +52,8 @@ it's not implemented at all. That's why not all reference counted classes
 provide comparison operators.
 
 Also note that if you only need to do a @c shallow comparison between two
-#wxObject derived classes, you should not use the == and != operators but
-rather the wxObject::IsSameAs function.
+wxObject derived classes, you should not use the == and != operators but
+rather the wxObject::IsSameAs() function.
 
 
 @section overview_refcount_destruct Object Destruction
@@ -71,38 +71,42 @@ it.
 The following classes in wxWidgets have efficient (i.e. fast) assignment
 operators and copy constructors since they are reference-counted:
 
-@li #wxAcceleratorTable
-@li #wxAnimation
-@li #wxBitmap
-@li #wxBrush
-@li #wxCursor
-@li #wxFont
-@li #wxIcon
-@li #wxImage
-@li #wxMetafile
-@li #wxPalette
-@li #wxPen
-@li #wxRegion
-@li #wxString
-@li #wxVariant
-@li #wxVariantData
+@li wxAcceleratorTable
+@li wxAnimation
+@li wxBitmap
+@li wxBrush
+@li wxCursor
+@li wxFont
+@li wxIcon
+@li wxImage
+@li wxMetafile
+@li wxPalette
+@li wxPen
+@li wxRegion
+@li wxString
+@li wxVariant
+@li wxVariantData
 
 Note that the list above reports the objects which are reference counted in all
 ports of wxWidgets; some ports may use this technique also for other classes.
 
+All the objects implement a function IsOk() to test if they are referencing valid
+data; when the objects are in uninitialized state, you can only use the IsOk() getter;
+trying to call any other getter, e.g. wxBrush::GetStyle() on the ::wxNullBrush object,
+will result in an assert failure in debug builds.
+
 
 @section overview_refcount_object Making Your Own Reference Counted Class
 
-Reference counting can be implemented easily using #wxObject and
-#wxObjectRefData classes. Alternatively, you can also use the
-#wxObjectDataPtr<T> template.
+Reference counting can be implemented easily using wxObject and wxObjectRefData
+classes. Alternatively, you can also use the wxObjectDataPtr<T> template.
 
-First, derive a new class from #wxObjectRefData and put there the
+First, derive a new class from wxObjectRefData and put there the
 memory-consuming data.
 
-Then derive a new class from #wxObject and implement there the public interface
+Then derive a new class from wxObject and implement there the public interface
 which will be seen by the user of your class. You'll probably want to add a
-function to your class which does the cast from #wxObjectRefData to your
+function to your class which does the cast from wxObjectRefData to your
 class-specific shared data. For example:
 
 @code