Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.

Hasonló előadás


Az előadások a következő témára: "UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading."— Előadás másolata:

1 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading

2 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Alapvető műveletek  Lehetőség van primitív értékek összeadására, kivonására, …stb. int a = 5; int b = 5; int c = a – b;  De lehetőség van-e objektumok összeadására, kivonására, stb? Obj a; Obj b; Obj c = a + b;//??  A válasz igen, ha felüldefiniáljuk az adott operátort.

3 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Operátorok fajtái  Unáris Csak egy „oldala” van Pl. ++, --(következő órán részletesebben)  Bináris Két „oldala” van. A bal oldala MINDIG az az objektum, melyen alkalmazni szeretnénk az adott operátort! Jobb oldali paraméter egy referencia, mellyel el akarjuk végezni a műveletet az előző objektumon.

4 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Operátor overloading  Szintaxis: Visszatérési_Tipus operátor felül_definiálandó_operátor (paraméter);  Pl., ha van egy Tort osztályunk: Tort operator+( Tort& right);  A +,-,*,/ stb operátoroknál új érték képződik, a régiek nem változnak, tehát egy ilyen műveletnél új objektum fog létrejönni.

5 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Operátor példa (*) class Tort { private: int szamlalo; int nevezo; public: Tort( int sz, int n ) { szamlalo = sz; nevezo = n; } Tort operator*( Tort& other ) { return Tort( this->szamlalo * other.szamlalo, this->nevezo * other.nevezo ); } };

6 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Operátor használata (*)  Létrehozzuk az alábbi Tort objektumokat: Tort a( 2,3 ); Tort b( 2,4 );  Használhatjuk így is az operátorokat: Tort c = a.operator*( b );  De kényelmi célokból a használat a következő: Tort c = a * b;


Letölteni ppt "UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading."

Hasonló előadás


Google Hirdetések