
//
// To jest przykładowy kod z podrozdziału 8.2.2 „Deklaracje stałych i zmiennych” książki 
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"     // W tym pliku znajduje się deklaracja strumienia cout.

//------------------------------------------------------------------------------

int main()
{
    int a;               // Brak inicjatora.
    double d = 7;        // Inicjator określony za pomocą operatora =.
    vector<int> vi(10);  // Inicjator określony za pomocą składni ().

    const int x = 7;     // Inicjator określony za pomocą operatora =.
    const int x2(9);     // initializer using the () syntax
    //const int y;       // Błąd: brak inicjatora.
}

//------------------------------------------------------------------------------

namespace innocent
{
    void f(int z)
    {
        int x;           // Niezainicjowany
        // … tutaj nie ma instrukcji przypisującej zmiennej x wartość …
        x = 7;           // nadanie x wartości
        // ...
    }
}

//------------------------------------------------------------------------------

namespace dangerous
{
    void f(int z)
    {
        int x;           // Niezainicjowany
        // … tutaj nie ma instrukcji przypisującej zmiennej x wartość …
        if (z>x) {    
            // ...
        }
        // ...
        x = 7;           // nadanie x wartości
        // ...
    }
}

//------------------------------------------------------------------------------
