Я пытаюсь понять пространства имен немного лучше в C++. Мой первый объектно-ориентированный язык - Objective-C, поэтому я сравниваю с ним другие языки. Мне кажется, что пространства имен C++ аналогичны инфраструктурам iOS, таким как UIKit и Foundation. Какие файлы содержат списки других файлов заголовков. Я также хотел бы знать, являются ли пространства имен C++ похожими на пространства имен С# и/или Java. Я знаю только одно отличие, которое имеет пространство имен C++, - это использование нотации (: :) против (.) Нотации в С# и Java. Я также знаю, что (в отличие от Objective-C) вы можете использовать имя пространства имен для вызова его класса и функции: например, "System.Console.WriteLine()" или "std :: cout". Я ценю любые советы. благодаря
Пространство имен C++ - это просто то, что отделяет имена одного вида от имен другого типа. Ключевым моментом пространства имен является исключение "коллизий имен" - две функции или переменные, имеющие одно и то же имя, и, следовательно, компилятор/компоновщик, не зная, какой из них вы имеете в виду.
Структура представляет собой набор функций и/или объектов, которые позволяют выполнять некоторые задачи (набор задач). Возможно:
и миллионы других вещей.
Структура обычно реализуется внутри пространства имен, чтобы избежать столкновения с другими частями вашего кода или какой-либо другой структуры.
Стандартная библиотека C++ реализована в пространстве имен std
, но это не строго фреймворк, а набор базовых функций, которые в большинстве случаев потребуются большинству приложений.
Это довольно упрощенное представление, так как полное описание двух концепций - это, вероятно, несколько дней усилий...