Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9" xml:lang="en"><title>The
       
    13 relationship between descriptor classes</title><shortdesc>Describes inheritance relationship between the descriptor classes
       
    14 and associated abstract base classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <p>The following diagram shows the inheritance relationship between the concrete
       
    16 descriptor classes and their abstract base classes. </p>
       
    17 <p>The diagram uses the 16-bit variant types: </p>
       
    18 <ul>
       
    19 <li id="GUID-9F68E03E-EC88-50FD-868C-EB3C91DE9F50"><p> <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> </p> </li>
       
    20 <li id="GUID-DC40BC35-AA45-515C-9721-8B6E73A7AC89"><p> <xref href="GUID-262C5A94-F186-31A1-855E-1FE123BC101C.dita"><apiname>TPtr16</apiname></xref> </p> </li>
       
    21 <li id="GUID-10AD9787-4CCA-5600-8898-1F18B94C6499"><p> <xref href="GUID-44622E86-313E-36B3-9989-3016F8E6E252.dita"><apiname>TBufC16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
       
    22 <li id="GUID-D88E7A38-CF2F-5723-B1C1-C9FF3113AEF9"><p> <xref href="GUID-EF25E407-26DF-3D97-B725-2DD0345975BA.dita"><apiname>TBuf16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
       
    23 <li id="GUID-55E8280B-DB84-51B0-B103-E674DACCE388"><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> </p> </li>
       
    24 <li id="GUID-9B7A4836-E7BA-5751-AFA7-563ED80B2F76"><p> <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref> </p> </li>
       
    25 </ul>
       
    26 <p>but the relationship is exactly the same for the 8-bit variants. The class
       
    27 names can also be replaced by the build independent types and the relationships
       
    28 remains valid. </p>
       
    29 <p>The <codeph>TBufBase16</codeph> and <codeph>TBufCBase16</codeph> classes
       
    30 are an implementation convenience and are not part of the public API. </p>
       
    31 <p> <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> and <xref href="GUID-C04A9A0C-DBA7-37DA-B744-54FBF3D544CD.dita"><apiname>TDes16</apiname></xref> are abstract
       
    32 classes and cannot be instantiated, However, these types can be passed as
       
    33 arguments to functions. </p>
       
    34 <fig id="GUID-B76A3D70-207B-55B2-B5BC-003E6E143375">
       
    35 <image href="GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e225093_href.png" placement="inline"/>
       
    36 <p>Inheritance relationship between the concrete descriptor classes and their
       
    37 abstract base classes</p>
       
    38 </fig>
       
    39 <p>Because descriptors are widely used (especially on the stack), the size
       
    40 of descriptor objects must be kept to a minimum. To help with this, no virtual
       
    41 functions are defined in order to avoid the overhead of a virtual function
       
    42 table pointer in each descriptor object. </p>
       
    43 <p>As a consequence, the base classes have implicit knowledge of the classes
       
    44 derived from them. </p>
       
    45 </conbody></concept>