私はAccelerated C++の本からC++を学びたいと思っています。第1章の終わりに、私を襲った練習があります。基本的に、次のコードはコンパイルされ、完璧に動作しますなぜ私は疑問に思って:なぜ私のC++コードは二重に宣言された変数でもコンパイルされますか?
#include <iostream>
#include <string>
int main() {
{
const std::string s = "a string";
std::cout << s << std::endl;
{
std::cout << s << std::endl;
const std::string s = "another string";
std::cout << s << std::endl;
};
}
return 0;
}
私が二重に文字列sを宣言していますし、私の理解から、これは違法であると私には思えます。私はこれをより良く理解できるように助けてくれますか?ありがとう。
a string
a string
another string
重複している可能性があります/重複:https://stackoverflow.com/questions/4151203/why-is-this-c-working-variables-with-the-same-name –