Symbian3/PDK/Source/GUID-96C7CBD4-4B25-5AA1-A54F-1764B54FDC7E.dita
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
     7     Nokia Corporation - initial contribution.
     7     Nokia Corporation - initial contribution.
     8 Contributors: 
     8 Contributors: 
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept xml:lang="en" id="GUID-96C7CBD4-4B25-5AA1-A54F-1764B54FDC7E"><title>How to write a derived class with two-phase construction</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>When writing a derived class, you must use the derived class <codeph>ConstructL()</codeph> to call the correct base class <codeph>ConstructL()</codeph>. </p> <p>Call the base class <codeph>ConstructL()</codeph> before the derived-class specific construction starts. This mirrors the action of C++ constructors.</p> <codeblock id="GUID-DA0E4184-AC27-565F-9DA1-2CBB59A1E949" xml:space="preserve">class CCompoundDerived : public CCompound
    12 <concept id="GUID-96C7CBD4-4B25-5AA1-A54F-1764B54FDC7E" xml:lang="en"><title>How
       
    13 to write a derived class with two-phase construction</title><shortdesc>This document illustrates how to implement two-phase construction
       
    14 in a derived class with example code.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <p>When writing a derived class, you must use the derived class <codeph>ConstructL()</codeph> to
       
    16 call the correct base class <codeph>ConstructL()</codeph>. </p>
       
    17 <p>Call the base class <codeph>ConstructL()</codeph> before the derived-class
       
    18 specific construction starts. This mirrors the action of C++ constructors.</p>
       
    19 <codeblock id="GUID-DA0E4184-AC27-565F-9DA1-2CBB59A1E949" xml:space="preserve">class CCompoundDerived : public CCompound
    13     {
    20     {
    14 public:
    21 public:
    15     ...
    22     ...
    16 protected:
    23 protected:
    17     ...
    24     ...
    18     void ConstructL();
    25     void ConstructL();
    19 private:
    26 private:
    20     ...
    27     ...
    21     };</codeblock> <codeblock id="GUID-C67C0AC0-8974-54C2-AEBE-0557DA7C6838" xml:space="preserve">void CCompoundDerived::ConstructL()
    28     };</codeblock>
       
    29 <codeblock id="GUID-C67C0AC0-8974-54C2-AEBE-0557DA7C6838" xml:space="preserve">void CCompoundDerived::ConstructL()
    22     {
    30     {
    23     this-&gt;CCompound::ConstructL();
    31     this-&gt;CCompound::ConstructL();
    24     // own construction
    32     // own construction
    25     }</codeblock> </conbody></concept>
    33     }</codeblock>
       
    34 </conbody></concept>