Top.Mail.Ru
Ответы

Что означает в си++ "++::" и как оно работает?

int f(int n) {
n *= 10;
++::n; <------------------------
return g(n);

int main() {
int n{2};
cout << f(n);
cout << n << ::n; <-------------------------
return 0;
}

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
1234567891011121314151617181920212223242526
 #include <iostream>  
#include <vector>  
 
using namespace std; //без указания namespace не обьявленные в коде переменные,функции и классы 
//будет по умолчанию искать в одной из подключенных стандартных библиотеках или внутри ваших областей 
//namespace std {} если таковые имеются 
namespace xxr { int n=0; } //внутри namespace xxr - "n" принадлижит этой namespace 
int n = 0; //вне main и вне других namespace - глобальная область 
int main() { 
	 
	for (int n = 0; n < 10; n++) //внутри счетчика - локальная "n" 
	{ 
		++xxr::n; // xxr::n - это переменная "n" обьявленная в namespace xxr 
		--::n; // ::n - это переменная из глобальной области 
		cout << n;	// cout в коде не обьявлена, поэтому из за "using namespace std" 
					// ищется в стандартной подключенной библиотеке и находит ее в 
					// библиотеке <iostream> 
					// а переменная "n" для которой не указана область - 
					// по умолчанию берется из локальной области 
	} 
 
	//если посмотреть таблицу приоритетов различных операторов, то у оператора :: наивысший приоритет, 
	//тоесть он применяется в первую очередь. 
	//поэтому --::n можно рассматривать как --(::n) вначале определяется из какой области переменная, 
	//а эатем к ней применяются остальные операторы, тут это декримент -- 
} 
Аватар пользователя
Мыслитель

Префиксный инкремент переменной n, находящейся в глобальной области видимости

:: это оператор разрешения области видимости
++ это оператор инкремента

Аватар пользователя
Искусственный Интеллект

Это не имеет самостоятельного значения, это часть обозначения операции. Там написано ++::n. Это прединкремент переменной n из глобального пространства имен - увеличение значения этой переменной на 1 перед ее использованием.

Аватар пользователя
Оракул

+1 это значит
вместо n+=1 пишут просто n++