Как использовать выборочно открытую функцию C ++? - PullRequest
0 голосов
/ 02 июня 2018

Я читаю Прагматику программирования, и в ней упоминается, что:

C ++ является представителем все более распространенного варианта, в котором имена автоматически экспортируются, но доступны извне, только если они квалифицированы с помощьюимя модуля - если только они явно не «импортированы» другой областью действия (например, с помощью директивы C ++ using), и в этот момент они доступны без оговорок.

Я думал, что все имена в C ++ экспортируются толькокогда другой модуль импортирует его.

Если имена модуля A автоматически экспортируются, почему мы должны использовать #include в других модулях?Я думал, что функция #include __ похожа на импорт __ в Python.

Каков синтаксис для определения имени модуля вне модуля, чтобы мы могли использовать его данные без явной директивы using?

Пожалуйста, просветите меня.Заранее большое спасибо.

1 Ответ

0 голосов
/ 02 июня 2018

Это предложение, похоже, говорит о квалифицированных и неквалифицированных именах, но в нем используются термины и понятия, которые просто не относятся к C ++.

#include <iostream>

int main() {
    std::cout << "Hello, world\n";
    return 0;
}

#include <iostream>
using namespace std; // we never do this

int main() {
    cout << "Hello, world\n";
    return 0;
}

#include <iostream>
using std::cout; // some people like this

int main() {
    cout << "Hello, world\n";
    return 0;
}

Первый - правильный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...