metoda klasy string zwracajaca referencje do obiektu tej klasy.
Ostatnio zmodyfikowano 2016-11-16 23:37
Rashmistrz |
» 2016-11-15 15:32:31 Jak bardzo? Według mnie to jest bez różnicy. D: |
|
mateczek |
» 2016-11-15 15:47:40 Jasne, ja to rozumiem. Tylko spójrzmy, kiedy mamy coś takiego: |
No właśnie nie do końca. Bo przykład ze zmienną int i zwykłą funkcją bez związku z pytaniem. Więc masz trochę inny przykład: #include <iostream>
using namespace std; class counter { public: int i = 0; counter & inc() { ++i; return * this; } };
std::ostream & operator <<( std::ostream & s, counter & c ) { return s << c.i; }
int main() { counter licznik; licznik.inc(); licznik.inc(); cout << licznik; cout << endl; licznik.inc().inc().inc(); cout << licznik << endl; }
|
|
mateczek |
» 2016-11-15 15:55:52 Jak bardzo? Według mnie to jest bez różnicy. D: |
; funkcja "operator+()" tworzy nowy obiekt. A na swoje wytłumaczenie mam tylko to, że na hasło zwrot "*this" przez referencje od razu skojarzyło mi się "tasiemce". I ten operator+ nie przemyślałem. operator+=() już zwraca referencję do obiektu na rzecz którego pracuje. Często funkcje operator=(). też tak robią by można było pisać w stylu a = b = c; |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-11-15 16:00:05 Chwila, od początku. Wskaźnik this wskazuje na zmienną 'i' i inkrementuje ją. Rozumiem, że wskaźnik ten przechowuje (mam nadzieję, że dobrze mówię) referencję zmiennej 'i', tak? I zwracamy ten wskaźnik, czyli referencję. Jasne. Tylko... co z tego mamy? Do obiektu zostaje "przypisana" ta referencja? Rozumiem, jak działa. ale chce wiedzieć o co dokładnie chodzi. Dzięki za wcześniejszą pomoc |
|
mateczek |
» 2016-11-15 16:03:56 //licznik.inc() to jest to samo co licznik. Bo funkcja "inc()" zwraca referencję do obiektu licznik Wskaźnik "this" wskazuje obiekt licznik. Cały obiekt a nie składnik obiektu Do obiektu zostaje "przypisana" ta referencja |
NIE!!! Żadna referencja nie jest przypisywana do obiektu !!! funkcja zwraca referencję do obiektu na rzecz którego pracuje!!! co z tego mamy wyjaśniłem w przykładzie wyżej. Skasuj sobie referencję i skompiluj !!! PS. Za szybko odpowiadasz nie przemyślawszy przykładów !!! |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-11-16 00:27:15 Ok, tylko w klasie string są metody które z tego co zrozumiałem tworzą nową tablicę i zwracają referencję do niej? Jeśli tak to jak to się odbywa? |
|
mateczek |
» 2016-11-16 00:55:53 a mógłbyś podać o którą metodę Ci chodzi ?? było by łatwiej. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-11-16 01:08:24 Weźmy na celownik 'insert'. Widziałem gdzieś w książce J. Grębosza bardzo dobry przykład o przepisywaniu tekstu 'Wesela' Wyspiańskiego do innej tablicy, żeby dodatkowo na początku wstawić (insert) imię i nazwisko autora. No i teraz jak zwracana jest referencja do tej nowej tablicy? Ps. jutro w razie potrzeby poszukam tego fragmentu. |
|
1 « 2 » 3 |