Documente Academic
Documente Profesional
Documente Cultură
3. Redefinirea operatorilor
Exemplul 3.1:
#include <stdio.h>
class Complex
{
float re, im;
public:
Complex(float real=0, float imag=0):re(real), im(imag){}
void main()
{
Complex a(0, 1), b(2, 3), c(4, 5);
a = a+b;
a.print();
a = a+b+c;
a.print();
a = a-b-c; // din acelasi motiv operator – returneaza o
// referinta!
a.print();
}
Exemplul 3.2:
class Example
{
int* ptr;
public:
Example(int i=0){ptr = new int(i);}
~Example(){delete ptr;}
void main()
{
Example e1(1), e2(2), e3(3);
e1 = e2 = e3;
// operatorul = returneaza o referinta la un obiect
// Example pentru a putea fi concatenat în expresii precum
// cea de mai sus, care este expandata de compilator sub
// forma e1.operator =(e2.operator =(e3));
}