home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9202 / borhot / c.cpp < prev    next >
C/C++ Source or Header  |  1992-01-06  |  3KB  |  83 lines

  1. /* ------------------------------------------------------ */
  2. /*                      C.CPP                             */
  3. /*        Member Data Initialization Using Constructor    */
  4. /*                Initialization List                     */
  5. /*            (c) 1990 Borland International              */
  6. /*                 All rights reserved.                   */
  7. /* ------------------------------------------------------ */
  8. /*  veröffentlicht in: DOS toolbox 2'92                   */
  9. /* ------------------------------------------------------ */
  10.  
  11. /*
  12.   The following code demonstrates the initialization of a
  13.   class's member data by using the initialization list of a
  14.   class constructor. It also shows how to call a base class
  15.   constructor from a derived class.
  16.  
  17.   Since this code uses floating point, be sure to have
  18.   floating point emulations enabled (IDE) or include
  19.   EMU.LIB and MATHx.LIB at the appropriate location in the
  20.   TLINK command line.
  21. */
  22.  
  23. #include <iostream.h>
  24.  
  25. #define HUND 100
  26.  
  27. class base {
  28.   public:
  29.   base() {
  30.     cout << "in base\n";
  31.   }
  32. };
  33.  
  34. class derive : public base {
  35.   int   x, z;
  36.   float y;
  37.  
  38. public:
  39.   // Note that the initialization list comes AFTER the
  40.   // contructors formal arguments and a colon. Each
  41.   // variable name is followed by an initial value in
  42.   // parenthese. Each variable is separated from the next
  43.   // by a comma.  The value in the parenthese can be either
  44.   // a variable from the constructor parameter list,
  45.   // a value, an expression that results in a value, or a
  46.   // constant.
  47.  
  48.   // At the end of the initialization list is the call to
  49.   // the base class constructor. In this example, parameters
  50.   // are not passed, however, parameters may be passed and
  51.   // they may consist of a variable from the derived
  52.   // constructor parameter list, a value, an expression that
  53.   // results in a value, or a constant.
  54.  
  55.   // A private or public member of the base class cannot be
  56.   // initialized by the initialization list of the derived
  57.   // constructor.
  58.  
  59.   //initialization list...Call to base constructor
  60.  
  61.   derive(int a) : x(a*a), z(HUND), y(4.33), base()
  62.   {
  63.     cout << "in derive\n";
  64.   }
  65.  
  66. void show(void) {
  67.   cout << "x is " << x;
  68.   cout << "\nz is " << z;
  69.   cout << "\ny is " << y;
  70.   }
  71. };
  72.  
  73. // ------------------------------------------------------- *
  74. int main()
  75. {
  76.   derive dd(3);
  77.   dd.show();
  78.   return 0;
  79. } // end of main()
  80. /* ------------------------------------------------------ */
  81. /*                    Ende von C.CPP                      */
  82.  
  83.