Sdílet prostřednictvím


Rozsah

Názvy jazyka C++ lze použít pouze v některých oblastech programu.Tato oblast se nazývá „rozsah“ názvu.Rozsah určuje „životnost“ názvu, který neoznačuje objekt statického rozsahu.Rozsah také určuje viditelnost názvu, kdy jsou volány konstruktory a destruktory třídy a kdy jsou inicializovány proměnné místního rozsahu. (Další informace naleznete v tématech Konstruktory and Destruktory.) Existuje pět typů rozsahu:

  • **Místní rozsah   **Název deklarovaný v rámci bloku je přístupný pouze v rámci tohoto bloku a v blocích vnořených v tomto bloku a pouze za bodem deklarace.Názvy formálních argumentů funkce v rozsahu vnějšího bloku funkce mají místní rozsah, jako kdyby byly deklarovány uvnitř bloku obklopujícího tělo funkce.Zvažte následující fragment kódu:

    {
        int i;
    }
    

    Protože deklarace proměnné i je v bloku uzavřeném ve složených závorkách, má proměnná i místní rozsah a není nikdy přístupná, protože k ní před uzavírací složenou závorkou nepřistupuje žádný kód.

  • **Rozsah funkce   **Popisky jsou jediné názvy, které mají rozsah funkce.Lze je použít kdekoli v rámci funkce, ale mimo tuto funkci nejsou k dispozici.

  • **Rozsah souboru   **Jakýkoli název deklarovaný mimo všechny bloky nebo třídy má rozsah souboru.Po jeho deklaraci je přístupný kdekoli v rámci jednotky převodu.Názvy s rozsahem souboru, které nedeklarují statické objekty se nazývají globální názvy.

    V jazyce C++ je rozsah souboru také známý jako rozsah oboru názvů.

  • Rozsah třídy   Názvy členů třídy mají rozsah třídy.K členským funkcím třídy lze přistupovat pouze pomocí operátorů výběru členů (. nebo –>) nebo operátorů ukazatel na člen (. * nebo –>*) objektu nebo ukazatele na objekt této třídy. Datové členy objekt nestatické třídy považuje za místní.Zvažte následující deklaraci třídy:

    class Point
    {
        int x;
        int y;
    };
    

    Členy třídy x a y jsou v rozsahu třídy Point.

  • **Rozsah prototypu   **Názvy deklarované v prototypu funkce jsou viditelné pouze do konce tohoto prototypu.Následující prototyp deklaruje tři názvy (strDestination, numberOfElements a strSource). Tyto názvy se na konci prototypu dostanou mimo rozsah:

    errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource );
    

Viz také

Referenční dokumentace

Základní koncepty