christ@tybalt.caltech.edu (Christian L. Keppenne) (08/14/89)
I am a newcomer to c++ who is encountering the following problem. I need to be able to do operations on complex numbers in a setting where a constructor with no argument has been defined. My sources handles matrices of complex numbers and it will not compile if I use the complex type defined in the complex.h file found on our system because the constructor handles the case with no argument as complex(double=0.0,double=0.0) { etc..... } I only found two ways to handle this and both are not very elegant: 1) use my own customized version of the complex,h file 2) define a derived class to redefine the constructor as in the following example: #include <complex.h> #include <stream.h> class cplx: public complex { public: cplx( ) : (0.0,0.0) { } cplx(double r) : (r,0.0) { } cplx(double r, double i) : (r,i) { } } a,b; main( ) { /* what I don't like is that "cout << a+b;" does not work so that I have to write: */ cout << *((complex *) &a)+ *((complex *) &b); } I am sure there are more elegant ways to do this. Will someone help me? As this is certainly a trivial question, it is probably be a good idea to reply by e. mail thank you. Christian Keppenne christ@tybalt.caltech.edu