/************************************************************************ *
The following example shows the declaration and use of
several constructors that explicitly initialize class objects:
* ************************************************************************/
// This example illustrates explicit initialization // by constructor. #include <iostream.h> class complx { double re, im ; public: complx(); // default constructor complx(const complx& c) {re = c.re; im = c.im;} // copy constructor complx( double r, double i = 0.0) {re = r; im = i;} // constructor with default trailing argument void display() { cout << "re = "<< re << " im = " << im << endl; } }; void main () { complx one(1); // initialize with complx(double, double) complx two = one; // initialize with a copy of one // using complx::complx(const complx&) complx three = complx(3,4); // construct complx(3,4) // directly into three complx four; // initialize with default constructor complx five = 5; // complx(double, double) & construct // directly into five one.display(); two.display(); three.display(); four.display(); five.display(); }
/************************************************************************ *
The above example produces the following output:
re = 1 im = 0 re = 1 im = 0 re = 3 im = 4 re = 0 im = 0 re = 5 im = 0
* ************************************************************************/