• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed zmienna referencyjna do zmiennej referencyjnej

0 głosów
1,093 wizyt
pytanie zadane 5 sierpnia 2019 w C i C++ przez enigmatycznyclay Bywalec (2,450 p.)
zamknięte 6 sierpnia 2019 przez enigmatycznyclay

Otóż mam takie pytanie. Czy tworząc zmienną referencyjną(1), której przypisuję inną zmienną referencyjną(2) która jest referencją do jakiejś standardowej zmiennej(3), to czy zmienna ref(1) staje się bezpośrednio referencją zmiennej(3) czy może odwołując się do zmiennej ref(1) program będzie pośrednio przeskakiwał między referencjami aż natrafi na wskazywany obiekt? Dla przykładu taki fragment kodu:

int a = 10;
int& ref1 = a;
int& ref2 = ref1;
int& ref3 = ref2;
int& ref4 = ref3;
int& ref5 = ref4;

Co by się stało gdyby któraś z tych referencji zniknęła po całym tym ciągu przypisań? Czy ostatnia referencja z tego ciągu nadal bez problemu wskazywałaby cel? Oczywiście mógłbym to sprawdzić sam ale w wielu kwestiach jest tak, że program w teorii działa, ale w praktyce nie należy tak postępować z jakiegoś powodu. Z góry dziękuję za odpowiedź.

komentarz zamknięcia: rozwiązane

1 odpowiedź

0 głosów
odpowiedź 5 sierpnia 2019 przez adrian17 Mentor (354,880 p.)
wybrane 5 sierpnia 2019 przez enigmatycznyclay
 
Najlepsza

Wszystkie referencje wskazują na tą samą zmienną `a`. To oznacza też że `&a == &ref1 == &ref5` etc.

Co by się stało gdyby któraś z tych referencji zniknęła po całym tym ciągu przypisań?

Dopóki oryginalny obiekt żyje, referencje na niego będą poprawne.

(są pewne szczególne przypadki w których referencja może wydłużyć życie obiektu, ale to raczej zbyt szczegółowe na to pytanie)

komentarz 5 sierpnia 2019 przez enigmatycznyclay Bywalec (2,450 p.)
Dzieki wielkie

Podobne pytania

0 głosów
2 odpowiedzi 1,218 wizyt
pytanie zadane 28 stycznia 2019 w C i C++ przez Michał_Warmuz Mądrala (5,830 p.)
0 głosów
2 odpowiedzi 265 wizyt
0 głosów
3 odpowiedzi 568 wizyt
pytanie zadane 31 lipca 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)

93,667 zapytań

142,588 odpowiedzi

323,127 komentarzy

63,191 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...