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

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
Autor Wiadomość
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:
C/C++
#include <iostream>
int x = 0;
int main()
{
    int x = 10;
    {
        int x = 20;
        {
            int x = 30;
            std::cout << x << std::endl; // wyswietli 30
            std::cout <<(::x ) << std::endl; // wyswietli 0
        }
    }
}
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?
P-163326
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.
P-163327
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.
P-163328
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
P-163329
pekfos
» 2017-07-15 13:56:57
Widzę kurs C++ się rozwija..? Nie da się dostać do zasłoniętych zmiennych lokalnych.
P-163331
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.
P-163332
« 1 »
  Strona 1 z 1