Я начинаю на C++. Из того, что я понимаю, для того, чтобы использовать имя, мы должны включить библиотеку, состоящую из этого имени. После этого мы можем либо добавить имя пространства имен, либо использовать ключевое слово using.Нет необходимости в пространстве имен std при использовании функции isalpha
E.g.
без использования ключевого слова:
std::cout << "Hello Word!" << std::endl;
С помощью ключевого слова:
using namespace std;
cout << "Hello World!" << endl;
Я видел рабочий образец кода в Интернет, который использует имя isalpha
из locale
библиотеки в std
пространства имен. Однако этот образец не использует ни один из методов, упомянутых выше.
E.g.
#include <iostream>
#include <locale>
int main() {
std::cout << isalpha('a') << std::endl;
}
Может кто-нибудь объяснить мне, почему код все еще работает?
Только если вы публикуете полный код (включая заголовки)! – juanchopanza
Практические реализации стандартной библиотеки C++ копируют эти функции библиотеки C в пространство имен std. Но не удаляйте их из глобального пространства имен. Они также не могут, потому что это вызывает ошибки компоновщика. –
Вся магия за '# include' заключается в том, что она просто копирует содержимое файла, который включен, который обычно содержит декларации (ы) экспортированных символов (функции, переменные), вот и все. – PcAF