Zagnieżdżanie bloków kodu i zmienne o tej samej nazwie - uzyskiwanie dostępu do poszczególnych zmiennych
Ostatnio zmodyfikowano 2017-07-15 13:59
RazzorFlame Temat założony przez niniejszego użytkownika |
Zagnieżdżanie bloków kodu i zmienne o tej samej nazwie - uzyskiwanie dostępu do poszczególnych zmiennych » 2017-07-15 12:16:24 Cześć, to znowu ja. Zadaję dziś znowu pytanie czysto teoretyczne. Gdybyśmy mieli taki kod: #include <iostream> int x = 0; int main() { int x = 10; { int x = 20; { int x = 30; std::cout << x << std::endl; std::cout <<(::x ) << std::endl; } } }
To jak z tego najbardziej zagnieżdżonego scope-u dostać się do x-ów o wartości 10 i 20? Da się w ogóle? Wiem oczywiście o tym, że w praktyce taka sytuacja się raczej na pewno nie zdarzy ale tak właśnie teoretycznie - jak? |
|
Saran |
» 2017-07-15 12:33:45 Jak dla mmnie, da się uzyskać przynajmniej tego trzeciego iksa, przypisując jego wartość do nowej zmiennej, przed deklaracją iksa w trzeciej pętli. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2017-07-15 12:36:34 Tak ale nie o to chodzi. Chodzi mi o rozwiązanie tego bez dodawania nowych zmiennych, zmieniania ich nazw - tylko przez same operatory. |
|
Luq |
» 2017-07-15 12:50:06 Gdybyś miał zmienną globalną o nazwie x, to mógłbyś się do niej dostać przez ::x.
Ale w tym kodzie, zmienna x w najbardziej zagnieżdżonym bloku przysłania pozostałe zmienne i z tego co wiem nie da się co nich dostać w tym scopie
EDIT: Teraz zauważyłem, że masz zmienną globalną x :D |
|
pekfos |
» 2017-07-15 13:56:57 Widzę kurs C++ się rozwija..? Nie da się dostać do zasłoniętych zmiennych lokalnych. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2017-07-15 13:59:39 Tak, mi się to za bardzo nie przyda ale kiedy już coś komuś się przekazuje to wypada być poprawnym. Poza tym fajnie jest czasem jakąś ciekawostkę rzucić :) Dzięki za odpowiedź, zamykam temat. |
|
« 1 » |