Подтвердить что ты не робот

Каково использование "using namespace std"?

Что такое using namespace std?

Я хотел бы получить объяснение в терминах Layman.

4b9b3361

Ответ 1

  • с помощью: вы собираетесь использовать его
  • namespace: использовать что? Пространство имен
  • std: пространство имен std (где объявлены функции стандартной библиотеки С++, такие как string или vector).

После написания этой команды, если компилятор видит string, он будет знать, что вы можете ссылаться на std::string, и если он видит vector, он будет знать, что вы можете ссылаться на std::vector. (При условии, что вы включили в свой блок компиляции файлы заголовков, где они определены, конечно.)

Если вы его не пишете, когда компилятор видит string или vector, он не будет знать, о чем вы ссылаетесь. Вам нужно будет явно указать его std::string или std::vector, а если этого не произойдет, вы получите ошибку компиляции.

Ответ 2

Когда вы совершаете вызов using namespace <some_namespace>;, все символы в этом пространстве имен становятся видимыми без добавления префикса пространства имен. Символом может быть, например, функция, класс или переменная.

например. если вы добавите using namespace std;, вы можете написать только cout вместо std::cout при вызове оператора cout, определенного в пространстве имен std.

Это несколько опасно, потому что пространства имен предназначены для избежания коллизий имен и написания using namespace вы оставляете некоторый код, но теряете это преимущество. Лучшей альтернативой является использование только определенных символов, что делает их видимыми без префикса пространства имен. Например:

#include <iostream>
using std::cout;

int main() {
  cout << "Hello world!";
  return 0;
}