Sunteți pe pagina 1din 1

Supraincarcare operator functie ()

Operatorul functie se supraincarca prin fuctie membra (in


clasa) si este singurul operator care poate avea orice numar
de parametri.

Exemplu utilizare pentru clasa FisierAudio.


class FisierAudio
{
private:
char* denumire;
int durata;
public:
……………
//operatorul functie primeste in acest exemplu un sir de caractere si
returneaza un obiect FisierAudio pornind de la *this urmand ca apoi
sa schimbe denumirea fisierului pe baza parametrului primit.
FisierAudio operator()(char* nouaDenumire)
{
FisierAudio faRez = *this;
if (faRez.denumire != NULL)
delete[] faRez.denumire;
faRez.denumire = new char[strlen(nouaDenumire) + 1];
strcpy(faRez.denumire, nouaDenumire);
return faRez;
}
};

void main()
{
FisierAudio fa1(“Melodie1”,101);
FisierAudio fa2(“Melodie2”,102);
fa1 = fa2("Denumire noua");
//sau fa1 = fa2.operator()("Denumire noua");
cout<<fa1; //afiseaza: Denumire noua cu durata: 102
cout<<fa2; //afiseaza: Melodie2 cu durata: 102
}