@msuprunenko
C/C++ DirectX

Зачем нужны два раза двоеточия без класа?

Зачем нужны два раза двоеточия без класа? Пример с книги Луны Введения в DirectX 3D.
int DirectX1::EnterMsgLoop(bool(*ptr_display)(float timeDelta))
{
	MSG msg;
	::ZeroMemory(&msg, sizeof(MSG));
	static float lastTime = (float)timeGetTime();
	while (msg.message != WM_QUIT) {
		if (::PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
		{
			::TranslateMessage(&msg);
			::DispatchMessage(&msg);
		}
		else
		{
			float currTime = (float)timeGetTime();
			float timeDelta = (currTime - lastTime) * 0.001f;
			ptr_display(timeDelta); // вызов функции                                     
									// визуализации             
			lastTime = currTime;
		}
	}
	return msg.wParam;
}
  • Вопрос задан
  • 1221 просмотр
Решения вопроса 1
@MiiNiPaa
Указывает, что имя принадлежит глобальной области видимости.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@isotoxin
Обычно это нужно, если есть глобальная функция и функция член класса с тем же именем, и вам нужно вызвать именно глобальную.
void foo() {
}

class bar
{
    bar()  {
        foo(); // будет вызван член класса foo
        ::foo(); // будет вызвана глобальная foo
    }
    void foo()  {
    }
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы