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

📄 array_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00861       PINDEX length,      00862       BOOL dynamic = TRUE 00863     );00865 };00866 <span class="preprocessor">#endif</span>00867 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(<a class="code" href="classPWORDArray.html">PWORDArray</a>, WORD);00868 00869 00871 <span class="preprocessor">#ifdef DOC_PLUS_PLUS</span><a name="l00872"></a><a class="code" href="classPUnsignedArray.html">00872</a> <span class="preprocessor"></span><span class="keyword">class </span><a class="code" href="classPUnsignedArray.html">PUnsignedArray</a> : <span class="keyword">public</span> PBaseArray {00873   <span class="keyword">public</span>:00879     <a class="code" href="classPUnsignedArray.html#z41_0">PUnsignedArray</a>(00880       PINDEX initialSize = 0  00881     );00882 00885     <a class="code" href="classPUnsignedArray.html#z41_0">PUnsignedArray</a>(00886       <span class="keywordtype">unsigned</span> <span class="keyword">const</span> * buffer,   00887       PINDEX length,      00888       BOOL dynamic = TRUE 00889     );00891 };00892 <span class="preprocessor">#endif</span>00893 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(<a class="code" href="classPUnsignedArray.html">PUnsignedArray</a>, <span class="keywordtype">unsigned</span>);00894 00895 00897 <span class="preprocessor">#ifdef DOC_PLUS_PLUS</span>00898 <span class="preprocessor"></span><span class="keyword">class </span>PDWORDArray : <span class="keyword">public</span> PBaseArray {00899   <span class="keyword">public</span>:00905     PDWORDArray(00906       PINDEX initialSize = 0  00907     );00908 00911     PDWORDArray(00912       DWORD <span class="keyword">const</span> * buffer,   00913       PINDEX length,      00914       BOOL dynamic = TRUE 00915     );00917 <span class="preprocessor">#endif</span>00918 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(PDWORDArray, DWORD);00919 00920 00922 <span class="comment">// Linear array of objects</span>00923 00945 <span class="keyword">class </span>PArrayObjects : <span class="keyword">public</span> <a class="code" href="classPCollection.html">PCollection</a>00946 {00947   <a class="code" href="contain_8h.html#a0">PCONTAINERINFO</a>(PArrayObjects, <a class="code" href="classPCollection.html">PCollection</a>);00948 00949   <span class="keyword">public</span>:00958     <a class="code" href="object_8h.html#a2">PINLINE</a> PArrayObjects(00959       PINDEX initialSize = 0  00960     );00962 00995     <span class="keyword">virtual</span> Comparison Compare(00996       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; obj   00997     ) <span class="keyword">const</span>;00999 01002 01003     <span class="keyword">virtual</span> PINDEX GetSize() <span class="keyword">const</span>;01004 01013     <span class="keyword">virtual</span> BOOL SetSize(01014       PINDEX newSize  01015     );01017 01026     <span class="keyword">virtual</span> PINDEX Append(01027       <a class="code" href="classPObject.html">PObject</a> * obj   01028     );01029 01045     <span class="keyword">virtual</span> PINDEX Insert(01046       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; before,   01047       <a class="code" href="classPObject.html">PObject</a> * obj             01048     );01049 01060     <span class="keyword">virtual</span> PINDEX InsertAt(01061       PINDEX index,   01062       <a class="code" href="classPObject.html">PObject</a> * obj   01063     );01064 01073     <span class="keyword">virtual</span> BOOL Remove(01074       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj   01075     );01076 01088     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * RemoveAt(01089       PINDEX index   01090     );01091 01099     <span class="keyword">virtual</span> BOOL SetAt(01100       PINDEX index,   01101       <a class="code" href="classPObject.html">PObject</a> * val   01102     );01103 01110     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * GetAt(01111       PINDEX index  01112     ) <span class="keyword">const</span>;01113 01121     <span class="keyword">virtual</span> PINDEX GetObjectsIndex(01122       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj  01123     ) <span class="keyword">const</span>;01124 01134     <span class="keyword">virtual</span> PINDEX GetValuesIndex(01135       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; obj   <span class="comment">// Object to find equal of.</span>01136     ) <span class="keyword">const</span>;01137 01144     <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveAll();01146 01147   <span class="keyword">protected</span>:01148     <a class="code" href="array_8h.html#a0">PBASEARRAY</a>(ObjPtrArray, <a class="code" href="classPObject.html">PObject</a> *);01149     ObjPtrArray * theArray;01150 };01151 01152 01153 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>01154 <span class="preprocessor"></span>01161 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>PArray : <span class="keyword">public</span> PArrayObjects01162 {01163   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PArray, PArrayObjects);01164 01165   <span class="keyword">public</span>:01174     PArray( 01175       PINDEX initialSize = 0  01176     ) : PArrayObjects(initialSize) { }01178 01184     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * Clone()<span class="keyword"> const</span>01185 <span class="keyword">      </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PArray(0, <span class="keyword">this</span>); }01187 01197     T &amp; operator[](01198       PINDEX index  01199     )<span class="keyword"> const </span>{01200       <a class="code" href="classPObject.html">PObject</a> * obj = GetAt(index);01201       <a class="code" href="object_8h.html#a5">PAssert</a>(obj != NULL, <a class="code" href="object_8h.html#a70a46">PInvalidArrayElement</a>);01202       <span class="keywordflow">return</span> (T &amp;)*obj;01203     }01205 01206   <span class="keyword">protected</span>:01207     PArray(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PArray * c) : PArrayObjects(dummy, c) { }01208 };01209 01210 01222 <span class="preprocessor">#define PARRAY(cls, T) typedef PArray&lt;T&gt; cls</span>01223 <span class="preprocessor"></span>01224 01237 <span class="preprocessor">#define PDECLARE_ARRAY(cls, T) \</span>01238 <span class="preprocessor">  PARRAY(cls##_PTemplate, T); \</span>01239 <span class="preprocessor">  PDECLARE_CLASS(cls, cls##_PTemplate) \</span>01240 <span class="preprocessor">  protected: \</span>01241 <span class="preprocessor">    inline cls(int dummy, const cls * c) \</span>01242 <span class="preprocessor">      : cls##_PTemplate(dummy, c) { } \</span>01243 <span class="preprocessor">  public: \</span>01244 <span class="preprocessor">    inline cls(PINDEX initialSize = 0) \</span>01245 <span class="preprocessor">      : cls##_PTemplate(initialSize) { } \</span>01246 <span class="preprocessor">    virtual PObject * Clone() const \</span>01247 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>01248 <span class="preprocessor"></span>01249 <span class="preprocessor"></span><span class="preprocessor">#else // PHAS_TEMPLATES</span>01250 <span class="preprocessor"></span>01251 01252 <span class="preprocessor">#define PARRAY(cls, T) \</span>01253 <span class="preprocessor">  class cls : public PArrayObjects { \</span>01254 <span class="preprocessor">  PCLASSINFO(cls, PArrayObjects); \</span>01255 <span class="preprocessor">  protected: \</span>01256 <span class="preprocessor">    inline cls(int dummy, const cls * c) \</span>01257 <span class="preprocessor">      : PArrayObjects(dummy, c) { } \</span>01258 <span class="preprocessor">  public: \</span>01259 <span class="preprocessor">    inline cls(PINDEX initialSize = 0) \</span>01260 <span class="preprocessor">      : PArrayObjects(initialSize) { } \</span>01261 <span class="preprocessor">    virtual PObject * Clone() const \</span>01262 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>01263 <span class="preprocessor">    inline T &amp; operator[](PINDEX index) const\</span>01264 <span class="preprocessor">      { PObject * obj = GetAt(index); \</span>01265 <span class="preprocessor">        PAssert(obj != NULL, PInvalidArrayElement); \</span>01266 <span class="preprocessor">        </span><span class="comment">/* want to do to this, but gcc 3.0 complains --&gt; return *(T *)obj; } */</span> \01267         return (T &amp;)*obj; } \01268   }01269 01270 <span class="preprocessor">#define PDECLARE_ARRAY(cls, T) \</span>01271 <span class="preprocessor">  PARRAY(cls##_PTemplate, T); \</span>01272 <span class="preprocessor">  PDECLARE_CLASS(cls, cls##_PTemplate) \</span>01273 <span class="preprocessor">  protected: \</span>01274 <span class="preprocessor">    inline cls(int dummy, const cls * c) \</span>01275 <span class="preprocessor">      : cls##_PTemplate(dummy, c) { } \</span>01276 <span class="preprocessor">  public: \</span>01277 <span class="preprocessor">    inline cls(PINDEX initialSize = 0) \</span>01278 <span class="preprocessor">      : cls##_PTemplate(initialSize) { } \</span>01279 <span class="preprocessor">    virtual PObject * Clone() const \</span>01280 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>01281 <span class="preprocessor"></span>01282 <span class="preprocessor"></span><span class="preprocessor">#endif // PHAS_TEMPLATES</span>01283 <span class="preprocessor"></span>01284 01287 <span class="keyword">class </span>PBitArray : <span class="keyword">public</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a>01288 {01289   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PBitArray, <a class="code" href="classPBYTEArray.html">PBYTEArray</a>);01290 01291   <span class="keyword">public</span>:01296     PBitArray(01297       PINDEX initialSize = 0  01298     );01299     01302     PBitArray(01303       <span class="keyword">const</span> <span class="keywordtype">void</span> * buffer,   01304       PINDEX length,         01305       BOOL dynamic = TRUE    01306     );01308 01313     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * Clone() <span class="keyword">const</span>;01315 01324     <span class="keyword">virtual</span> PINDEX GetSize() <span class="keyword">const</span>;01325 01334     <span class="keyword">virtual</span> BOOL SetSize(01335       PINDEX newSize  01336     );01337 01344     BOOL SetAt(01345       PINDEX index,   01346       BOOL val           01347     );01348 01355     BOOL GetAt(01356       PINDEX index  01357     ) <span class="keyword">const</span>;01358 01367     <span class="keywordtype">void</span> Attach(01368       <span class="keyword">const</span> <span class="keywordtype">void</span> * buffer,   01369       PINDEX bufferSize      01370     );01371 01385     BYTE * GetPointer(01386       PINDEX minSize = 0    01387     );01389 01401     BOOL operator[](01402       PINDEX index  01403     )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> GetAt(index); }01404 01410     PBitArray &amp; operator+=(01411       PINDEX index  01412     ) { SetAt(index, TRUE); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }01413 01419     PBitArray &amp; operator-=(01420       PINDEX index  01421     ) { SetAt(index, FALSE); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }01422 01434     BOOL Concatenate(01435       <span class="keyword">const</span> PBitArray &amp; array  01436     );01438 };01439 01440 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span></pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:10 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 + -