Keskustelut - C/C++ - Aloittelijan kysymys muuttujien näkyvyysalueista


appelsiini011 18:34 27.4.09 
Törmäsin Accelerated C++ -kirjassa suunnilleen seuraavanlaiseen esimerkkiin:

C++
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    { const string s = "a string"//1. block
      cout << s << endl;
    { const string s = "another string"; //2. block 1.block:n sisällä
      cout << s << endl; }}

    return 0;
}
 

Eli jäi mietityttämään, pääseekö 2. blockista käsiksi 1. blockin muuttujaan s enää sen jälkeen, kun samalla nimellä on määritelty toinen muuttuja.
editoitu: 20:17 27.4.09
Grez 20:16 27.4.09 
Ei pääse.

Sen takia monet kääntäjät varoittavat tuosta, jos nimeää muuttujan samalla nimellä kuin ulommassa lohkossa.