X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/880efa2a137ce3e3f39236d0dc85f5d2dacdda12..500b128d0e42dfaa70f46e58d3cc5300c6b25489:/docs/doxygen/overviews/refcount.h diff --git a/docs/doxygen/overviews/refcount.h b/docs/doxygen/overviews/refcount.h index 8aab3dd2ff..75454a80c3 100644 --- a/docs/doxygen/overviews/refcount.h +++ b/docs/doxygen/overviews/refcount.h @@ -41,9 +41,10 @@ operation on it is the same. @section overview_refcount_equality Object Comparison -The == and != operators of the reference counted classes always do a @c deep -comparison. This means that the equality operator will return @true if two -objects are identical and not only if they share the same data. +The == and != operators of @ref overview_refcount_list "the reference counted classes" +always do a deep comparison. This means that the equality operator +will return @true if two objects are identical and not only if they share the +same data. Note that wxWidgets follows the STL philosophy: when a comparison operator can not be implemented efficiently (like for e.g. wxImage's == @@ -53,7 +54,7 @@ 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. +rather the wxObject::IsSameAs() function. @section overview_refcount_destruct Object Destruction @@ -90,6 +91,11 @@ operators and copy constructors since they are reference-counted: 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 @b IsOk() to test if they are referencing valid +data; when the objects are in uninitialized state, you can only use the @b 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 @@ -115,7 +121,7 @@ In fact, any time you need to read the data from your wxObject-derived class, you will need to call this function. @note Any time you need to actually modify the data placed inside your wxObject -derived class, you must first call the wxObject::UnShare function to ensure +derived class, you must first call the wxObject::UnShare() function to ensure that the modifications won't affect other instances which are eventually sharing your object's data.