funkcja zwracająca int& i przypisanie
Ostatnio zmodyfikowano 2015-07-27 20:35
Kondensator Temat założony przez niniejszego użytkownika |
funkcja zwracająca int& i przypisanie » 2015-07-27 17:53:01 Witam otóż nie rozumiem za bardzo jak to działa, że do funkcji zwracającej referencje(? a może adres sam nie kumam tego) można coś przypisać. Kod wygląda tak #include <iostream> using namespace std;
class MyClass { int x; public: MyClass( int val ) : x( val ) { } int & get() { return x; } };
int main() { MyClass foo( 10 ); foo.get() = 15; cout << foo.get() << '\n'; return 0; }
a tu dowód że się kompiluje http://cpp.sh/83r5 |
|
Monika90 |
» 2015-07-27 18:32:45 A czy poniższy kod rozumiesz? int main() { int x = 5; int & r = x; r = 7; cout << x << endl; }
|
|
Kondensator Temat założony przez niniejszego użytkownika |
» 2015-07-27 20:07:04 Ten co napisałaś rozumiem ale nie rozumiem jak można do wyniku funkcji wpisywać wynik O.o |
|
Monika90 |
» 2015-07-27 20:35:58 To działa tak samo. Typem wyrażenia foo.get() jest int& więc wyrażenie to może stać po lewej stronie operatora =, tak samo jak r którego typem też jest int& (to może jest uproszczenie, ale to powinno ci wystarczyć na razie)
Podobnie będzie tu
std::vector<int> v(10); v[0] = 1;
Wektor ma przeciążony operator [], ten operator to funkcja która zwraca referencję do elementu. |
|
« 1 » |