Przeciążenie operatora
Ostatnio zmodyfikowano 2018-10-30 08:59
AmbitnyIdiota Temat założony przez niniejszego użytkownika |
Przeciążenie operatora » 2018-10-29 22:13:47 class operator +( class & what ) { return class( this->x + what.x ); }
czy może mi ktoś powiedzieć czy dobrze to rozumiem, a jeśli nie to naprowadzić? to jest to samo jakbym zrobil cos takiego? class operator +( class & wtf, class & what ) { return class( wtf.x + what.x ); }
|
|
pekfos |
» 2018-10-29 22:35:52 Pomijając błędy, efekt jest ten sam. |
|
mateczek |
» 2018-10-30 08:59:46 pierwsza forma to przeładownie które jest składnikiem klasy. Druga forma to przeładowanie na zewnątrz klasy Słowo class jest słowem kluczowym (przykłady kodu są oderwane od rzeczywistości i raczej tylko poglądowe) #include <iostream>
using namespace std; class wektor { int x; int y; public: wektor( int _x, int _y ); wektor operator +( const wektor & w ); void wypisz(); };
wektor::wektor( int _x, int _y ) { x = _x; y = _y; }
wektor wektor::operator +( const wektor & w ) { return( wektor( w.x + x, w.y + y ) ); } void wektor::wypisz() { cout << this->x << " " << y << endl; } int main() { wektor w1( 12, 12 ); wektor w2( 1, 1 ); wektor w3 = w1 + w2; wektor w4 = w1.operator +( w2 ); w3.wypisz(); return 0; }
drugi przypadek #include <iostream>
using namespace std; class wektor { public: int x; int y; wektor( int _x, int _y ); void wypisz(); };
wektor::wektor( int _x, int _y ) { x = _x; y = _y; }
wektor operator +( const wektor & w1, const wektor & w2 ) { return( wektor( w1.x + w2.x, w1.y + w2.y ) ); }
ostream & operator <<( ostream & ss, const wektor & w ) { return ss << w.x << " " << w.y; }
void wektor::wypisz() { cout << this->x << " " << y << endl; } int main() { wektor w1( 12, 12 ); wektor w2( 1, 1 ); cout << w1 + w2 << endl; wektor w3 = operator +( w1, w2 ); return 0; }
|
|
« 1 » |