У меня возникают трудности с присвоением имен двум видам областей видимости, которые я вижу в Java:
class Fun {
int f = 1;
void fun() {
int f = 2;
while(true){
int f = 3;
int g = 1;
}
int g = 2;
}
}
В основном это случай с f = 3
и g = 2
;
A while
не вводит новую область видимости, поэтому я не могу создать локальную переменную while с именем f
. Но если я создаю локальную переменную с именем g
, тогда я смогу "заново создать" ее после цикла. Зачем? Я знаю, что он больше не доступен, но если компилятор проверяет доступность, он почти проверяет области действия.
Итак, мне было интересно, что это за сделка, что называются этими понятиями? Это то же самое, что и в С++?
Мне просто удалось установить g++ и сам пробовал:
#include <iostream>
using namespace std;
int main(){
int f = 0;
for(int i=0; i<1; i++){
int f = 1;
cout << f << endl;
{
int f = 2;
cout << f << endl;
}
}
cout << f << endl;
}
Поэтому, по-видимому, С++ одинаково относится ко всем областям!