how do I overload (type) operator?

S

sean worlock

I have written a simple class that modals the action of a complex number.
This class is called CComplex.
I wish to make my class as versatile as possable.
Thus lets say I have some variables defined as following:

int value1;
double value2;
float value3;

and three Complex objects defined as:

CComplex ONE,TWO,THREE;

I wish to perform the following...

ONE=(CComplex) value1;
TWO=(CComplex) value2;
THREE=(CComplex) value3;

thus I need to create a type operator for my CComplex class.
I have read many texts for the conversion of my class into other types but
not the other way.

could anybody point me in the correct direction for the prototype and
function syntax to complete this?
 
C

Catalin Pitis

sean worlock said:
I have written a simple class that modals the action of a complex number.
This class is called CComplex.
I wish to make my class as versatile as possable.
Thus lets say I have some variables defined as following:

int value1;
double value2;
float value3;

and three Complex objects defined as:

CComplex ONE,TWO,THREE;

I wish to perform the following...

ONE=(CComplex) value1;
TWO=(CComplex) value2;
THREE=(CComplex) value3;

thus I need to create a type operator for my CComplex class.
I have read many texts for the conversion of my class into other types but
not the other way.

could anybody point me in the correct direction for the prototype and
function syntax to complete this?

Just define constructor:

CComplex::CComplex( double value).

The statements can be then rewritten like:

ONE=value1;
TWO=value2;
THREE=value3;

Catalin
 
N

Nicolas Pavlidis

sean said:
I have written a simple class that modals the action of a complex number.
This class is called CComplex.
I wish to make my class as versatile as possable.
Thus lets say I have some variables defined as following:

int value1;
double value2;
float value3;

and three Complex objects defined as:

CComplex ONE,TWO,THREE;

I wish to perform the following...

ONE=(CComplex) value1;
TWO=(CComplex) value2;
THREE=(CComplex) value3;

thus I need to create a type operator for my CComplex class.
I have read many texts for the conversion of my class into other types but
not the other way.

could anybody point me in the correct direction for the prototype and
function syntax to complete this?

You can template the the hole class:

template<typename UnderLyingType>
class CComplex

Mayby you'd have to check if the type is a correct one, such as double
and so on.

HTH && Kind regards,
Nicolas
 
T

Tom Widmer

Just define constructor:

CComplex::CComplex( double value).

The statements can be then rewritten like:

ONE=value1;
TWO=value2;
THREE=value3;

Note that if you (the OP) want to require the cast notation, you can
declare the constructor "explicit". e.g.

explicit CComplex(double value); //don't use explicit in definition

I can't think of a good reason why you would want to do this though.
Also note that there is a perfectly good complex number class that is
part of the standard library: std::complex<double>, declared in the
<complex> header.

Tom
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,049
Latest member
Allen00Reed

Latest Threads

Top