Objective-C и C ++ на Linux - PullRequest
       1

Objective-C и C ++ на Linux

0 голосов
/ 23 ноября 2010

У меня есть несколько глупых вопросов. В чем разница между C ++ и objectice-c. Есть ли IDE для target-c для Linux?

Ответы [ 2 ]

4 голосов
/ 23 ноября 2010

Я собираюсь немного расширить точку зрения Да Винчи 1.

Первое сходство:

Objective-C и C ++ изначально были основаны на C. Оба языка поддерживают объектно-ориентированную модель. На этом сходство заканчивается.

Objective-C является строгим надмножеством C, C ++ - нет. Любая C-программа также является программой Objective-C. Это не обязательно имеет место с C ++.

Синтаксис OO-расширений Objective-C ближе к синтаксису Smalltalk, чем к C, тогда как обратный случай в случае C ++.

Философия моделей ОО также совершенно иная. Модель Objective-C является динамичной в духе Smalltalk. Модель C ++ более статична. С Objective-C вы отправляете сообщения объектам, и объект решает во время выполнения, как он собирается ответить на сообщение. В C ++ методы, на которые отвечает объект, даже виртуальные, определяются во время компиляции. Это делает объектную модель Objective-C намного более мощной, чем объектная модель C ++. Например, вы можете добавить целые наборы новых методов в существующие классы без использования наследования. Вы даже можете заменить реализацию метода на лету.

Все это, конечно, обходится дорого. Отправка сообщений объектам Objective-C немного медленнее, чем вызов виртуальных функций C ++. Тем не менее, я думаю, что преимущества стоят затрат, и вы всегда можете вернуться к C для критически важных участков кода.

NB. Существует также язык под названием Objective-C ++, который представляет собой OO-расширения Objective-C, построенные поверх C ++ вместо C.

0 голосов
/ 23 ноября 2010
  1. это просто два совершенно разных языка.
  2. Я думаю, что gnustep является единственной средой / библиотекой Objective-C, в ней также есть IDE: центр проектов, однако главная цель Objective-C - это продукты Apple.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...