Пространство имен C ++ против платформы iOS

0

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

  • 0
    Позвольте другим вдаваться в подробности, мой быстрый ответ, они не одинаковы.
Теги:
namespaces
frameworks

1 ответ

1
Лучший ответ

Пространство имен C++ - это просто то, что отделяет имена одного вида от имен другого типа. Ключевым моментом пространства имен является исключение "коллизий имен" - две функции или переменные, имеющие одно и то же имя, и, следовательно, компилятор/компоновщик, не зная, какой из них вы имеете в виду.

Структура представляет собой набор функций и/или объектов, которые позволяют выполнять некоторые задачи (набор задач). Возможно:

  • Интерфейс пользовательского интерфейса, который помогает вам создавать меню, окна и диалоговые окна.
  • компилятор, который помогает, если вы хотите построить компилятор.
  • рамки для выполнения линейной алгебры.
  • подключиться к движку базы данных и сформулировать SQL-запросы.
  • webtoolkit для создания приложений, которые общаются с веб-сайтами или отображают веб-страницы.

и миллионы других вещей.

Структура обычно реализуется внутри пространства имен, чтобы избежать столкновения с другими частями вашего кода или какой-либо другой структуры.

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

Это довольно упрощенное представление, так как полное описание двух концепций - это, вероятно, несколько дней усилий...

  • 0
    C и Objective-C не поддерживают пространства имен в смысле C ++, поэтому компоненты инфраструктуры iOS поставляются с префиксом, специфичным для каждой платформы. Таким образом, два имени, которые в противном случае столкнулись бы (например, изображение), могут быть указаны относительно каждой структуры. Реальный пример - UIImage (в UIKit), CGImage (в CoreGraphics) и CAImage (в CoreImage). В Java пространства имен соответствуют «пакетам».
  • 0
    Пакеты @mtroad также не являются пространствами имен, так как они несут другой багаж, который не имеет пространства имен.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню