[C++] Szablony, operatory
Ostatnio zmodyfikowano 2015-03-26 14:17
Steelgenesis Temat założony przez niniejszego użytkownika |
[C++] Szablony, operatory » 2015-03-26 00:23:09 Cześć, w jednej z książek znalazłem taki fragment kodu template < typname C > class String { public: String(); C & operator []( int n ) { return ptr[ n ]; } }
Czy mógłby mi ktoś wyjaśnić dlaczego w przeciążonym operatorze[] zwracamy obiekt przez referencję ? Jaki efekt przez to uzyskujemy ? |
|
akwes |
» 2015-03-26 08:54:57 String < char > b;
b[ 0 ] = 'b'; Pomyśl jak może wyglądać realizacja tego w zależności od tego co zwraca operator [] . |
|
Maciek |
» 2015-03-26 14:17:06 Jeśli nie zwrócisz l-wartości to nie powinno się skompilować, gdyby tablica nie zwracała referencji to pracował byś na kopii elementu tablicy i przypisanie nie modyfikowało by oryginału a kopię elementu tablicy. Tu masz krótki draft na ten temat: http://www.ely.pg.gda.pl/~mczyzak/Wyklad3sem3Ea_14102010.pdf, na ten temat jest masa tematów w sieci - hint: l-value. |
|
« 1 » |