📄 contain_8h.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>contain.h File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>contain.h File Reference</h1><code>#include <<a class="el" href="object_8h-source.html">ptlib/object.h</a>></code><br><code>#include <<a class="el" href="critsec_8h-source.html">ptlib/critsec.h</a>></code><br><code>#include <<a class="el" href="array_8h-source.html">ptlib/array.h</a>></code><br><code>#include <<a class="el" href="lists_8h-source.html">ptlib/lists.h</a>></code><br><code>#include <<a class="el" href="dict_8h-source.html">ptlib/dict.h</a>></code><br><code>#include <<a class="el" href="pstring_8h-source.html">ptlib/pstring.h</a>></code><br><p><a href="contain_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Compounds</h2></td></tr><tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classPCollection.html">PCollection</a></td></tr><tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classPContainer.html">PContainer</a></td></tr><tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classPContainer_1_1Reference.html">Reference</a></td></tr><tr><td colspan=2><br><h2>Defines</h2></td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="contain_8h.html#a0">PCONTAINERINFO</a>(cls, par)</td></tr></table><hr><h2>Define Documentation</h2><a name="a0" doxytag="contain.h::PCONTAINERINFO"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define PCONTAINERINFO</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">cls, <tr> <td></td> <td></td> <td class="md" nowrap>par </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p><b>Value:</b><div class="fragment"><pre><a class="code" href="object_8h.html#a27">PCLASSINFO</a>(cls, par) \ <span class="keyword">public</span>: \ cls(<span class="keyword">const</span> cls & c) : par(c) { CopyContents(c); } \ cls & operator=(<span class="keyword">const</span> cls & c) \ { AssignContents(c); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } \ <span class="keyword">virtual</span> ~cls() { Destruct(); } \ <span class="keyword">virtual</span> BOOL MakeUnique() \ { <span class="keywordflow">if</span>(par::MakeUnique())<span class="keywordflow">return</span> TRUE; CloneContents(<span class="keyword">this</span>);<span class="keywordflow">return</span> FALSE; } \ <span class="keyword">protected</span>: \ cls(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> cls * c) : par(dummy, c) { CloneContents(c); } \ <span class="keyword">virtual</span> <span class="keywordtype">void</span> DestroyContents(); \ <span class="keywordtype">void</span> CloneContents(<span class="keyword">const</span> cls * c); \ <span class="keywordtype">void</span> CopyContents(<span class="keyword">const</span> cls & c); \ <span class="keyword">virtual</span> <span class="keywordtype">void</span> AssignContents(<span class="keyword">const</span> <a class="code" href="classPContainer.html">PContainer</a> & c) \ { par::AssignContents(c); CopyContents((<span class="keyword">const</span> cls &)c); }</pre></div>Macro to declare funtions required in a container. This macro is used to declare all the functions that should be implemented for a working container class. It will also define some inline code for some standard function behaviour.<p>This may be used when multiple inheritance requires a special class declaration. Normally, the PDECLARE_CONTAINER# macro would be used, which includes this macro in it.<p>The default implementation for contructors, destructor, the assignment operator and the MakeUnique() function is as follows: \begin{verbatim} cls(const cls & c) : par(c) { CopyContents(c); }<p>cls & operator=(const cls &c) { par::operator=(c); return *this; }<p>cls(int dummy, const cls * c) : par(dummy, c) { CloneContents(c); }<p>virtual ~cls() { Destruct(); }<p>BOOL MakeUnique() { if (par::MakeUnique()) return TRUE; CloneContents(c); return FALSE; } \end{verbatim} Then the DestroyContents()#, CloneContents()# and CopyContents()# functions are declared and must be implemented by the programmer. See the PContainer# class for more information on these functions. </td> </tr></table><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:12 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -