, (, new delete, ). , , . , , .
, , . , , aa 2: aa+2, , aa.operator+(2), 2+aa , int, + , 2.operator+(aa). , , 2+aa aa+2, . +, , , , 2+aa aa+2. .
. , , , , .
, -, . . :
class complex {
double re, im;
public:
complex(double r, double i) { re=r; im=i; }
friend complex operator+(complex, complex);
friend complex operator+(complex, double);
friend complex operator+(double, complex);
friend complex operator-(complex, complex);
friend complex operator-(complex, double);
friend complex operator-(double, complex);
complex operator-() // -
friend complex operator*(complex, complex);
friend complex operator*(complex, double);
friend complex operator*(double, complex);
//...
};
, complex, :
void f()
{
complex a(1,1), b(2,2), c(3,3), d(4,4), e(5,5);
a = -b-c;
b = c*2.0*c;
c = (d+e)*a;
}
complex double, operator+(), . , ; , , complex.
() , double complex. :
class complex {
//...
complex(double r) { re=r; im=0; }
|
|
};
, , :
complex z1 = complex(23);
complex z2 = 23;
z1, z2 complex(23).
- , . , , , , . , complex :
class complex {
double re, im;
public:
complex(double r, double i = 0) { re=r; im=i; }
friend complex operator+(complex, complex);
friend complex operator*(complex, complex);
};
, complex , . complex . , a=b*2 :
a=operator*(b, complex(double(2), double(0)))
, .
, , , , .