Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Szablony, operatory

Ostatnio zmodyfikowano 2015-03-26 14:17
Autor Wiadomość
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
C/C++
template < typname C >
class String {
public:
    String();
    //...
    C & operator []( int n ) { return ptr[ n ]; } // niekontrolowany dostęp do elementów
    //...
}

Czy mógłby mi ktoś wyjaśnić dlaczego w przeciążonym operatorze[] zwracamy obiekt przez referencję ? Jaki efekt przez to uzyskujemy ?
P-129186
akwes
» 2015-03-26 08:54:57
C/C++
String < char > b;
// ...
b[ 0 ] = 'b';

Pomyśl jak może wyglądać realizacja tego w zależności od tego co zwraca
operator []
.
P-129189
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.
P-129193
« 1 »
  Strona 1 z 1