neelu7779 Ответов: 2

Решение для ошибки C++ c2039 не является членом глобального пространства имен


привет
Недавно, когда я писал программы на c++ в VS 2010, я начал получать ошибку
"
error c2039 is not a member of global namespace
"о разделении интерфейса и реализации.

почему это произошло?

Что я уже пробовал:

это было решено так же быстро, как я изменил порядок моих директив # include. Мои заголовочные файлы пошли вниз, а стандартные заголовочные файлы пошли вверх. вопрос был решен. Мне повезло, что я где-то это прочитал, а может быть, мне помогло медитативное состояние.

2 Ответов

Рейтинг:
1

neelu7779

в разделе include стандартные заголовочные файлы всегда должны предшествовать файлам классов, написанным программистом.


Рейтинг:
1

Jochen Arndt

Общее решение состоит в том, чтобы включить те системные и библиотечные заголовочные файлы поверх ваших заголовочных файлов, которые необходимы для компиляции заголовочного файла без ошибок.

Это означает, что исходный файл, содержащий только оператор include для вашего заголовочного файла (вероятно, после включения файл stdafx.ч; см. ниже) должен компилироваться без ошибок.

Visual Studio здесь немного особенная, потому что многие системные заголовочные файлы Windows обычно входят в комплект поставки файл stdafx.ч при использовании предварительно скомпилированных заголовков. Но включение одних и тех же файлов снова не вредит (они пропускаются при охране или использовании #pragma once).

Включение всех необходимых заголовочных файлов в ваш заголовочный файл гарантирует, что он также может быть использован для других проектов и когда предварительно скомпилированные заголовки отключены. Хотя это может быть не обязательно для одного проекта, это хороший стиль и позволяет повторно использовать его для других проектов.