Witam!
Przedstawiam program, który obrazuje wykorzystanie konstruktora konwertującego na przykładzie klasy COMPLEX.
Program napisany w języku C++.
#include <iostream>
class COMPLEX
{
double R;
double i;
public:
COMPLEX () : R(0), i(0) {} ;
COMPLEX (double new_r, double new_i=0) : R(new_r), i(new_i) {};
friend COMPLEX Add (COMPLEX a, COMPLEX b);
friend void Show(COMPLEX x);
};
COMPLEX Add (COMPLEX a, COMPLEX b)
{
COMPLEX Aggregate(0,0);
Aggregate.R = a.R + b.R;
Aggregate.i = a.i + b.i;
return Aggregate;
}
void Show(COMPLEX x)
{
std::cout<<"\nR = " <<x.R;
std::cout<<"\ni = " <<x.i <<"\n";
for (int i = 0; i < 80; i++) std::cout<<"-";
}
int main()
{
COMPLEX CN_1(10, 0.1); //Wywołanie konstruktora COMPLEX::COMPLEX(double, double);
COMPLEX CN_2 (0.5); //Wywołanie konstruktora COMPLEX::XOMPLEX(double, double=0);
COMPLEX CN_3 = Add (CN_1, 120); //Wywoałnie konstruktora konwertującego.
//Na rzecz liczby 120 wywoływany jest konstruktor COMPLEX::COMPLEX(double, double=0);
Show(CN_1);
Show(CN_2);
Show(CN_3);
}




