Что является преимуществами использования Objective C по [закрытому] C++

MD5 работал для меня, меняя мою базу данных вручную. См. Сброс пароля

21
задан Ned Batchelder 9 November 2008 в 22:29
поделиться

11 ответов

Как и многие другие, я только начал смотреть на Obj-C из-за iPhone. Я сделал много C ++ и C #, и из того, что я вижу, Obj-C имеет принципиально другой подход к OO в том, что он добавляет Smalltalk-подобный обмен сообщениями к C. Как и C ++, он в основном все еще C-совместим, но расширения OO позволяют Вы отправляете любое сообщение любому объекту. В этом смысле он не типизирован статически, как C ++ и C #, где вещи, которые может делать объект, привязаны к классу, которым он является. В Obj-C вы можете отправить сообщение объекту, даже если он его не поддерживает. Затем объект может переслать его, если он не знает, что с ним делать.

Действительно круто то, что вы можете добавлять интерфейсы (протоколы) во время выполнения и добавлять свои собственные обработчики, которые перехватывают и скрывают обработчики сообщений для существующих классов.

В целом, в обработке сообщений гораздо больше гибкости, чем в Ruby или Smalltalk. Является ли хорошей идеей привить этот тип ОО на C или нет, я пока не могу сказать, в некотором смысле подход C ++ лучше согласуется с первоначальной идеей C, но с другой стороны, подход Obj-C OO более что любят пуристы ОО.

19
ответ дан Andrew Queisser 29 November 2019 в 06:29
поделиться

От "Некоторые хорошие функции языка Objective C" :

  • Классы являются объектами
  • Динамический контроль типов и дополнительный статический контроль типов
  • Категории
  • сообщение, отправляющее
  • Выразительный синтаксис сообщения
  • Самоанализ
  • Динамическое время выполнения
  • Автоматическая сборка "мусора"
  • C в
  • C++, быстрый
  • Простота
  • Доступ к технологиям Apple
15
ответ дан 29 November 2019 в 06:29
поделиться

Я считаю, что синтаксис target-c немного чище, чем в c ++, хотя я знаю, что я в меньшинстве

12
ответ дан ennuikiller 29 November 2019 в 06:29
поделиться

Мое мнение таково, что синтаксис Objective-C поначалу немного «странный», особенно если вы пришли из C / C ++ фона (как я и сделал). Если вы планируете писать приложения для Mac или iPhone, разработка Cocoa - это то, что вам нужно . Этой весной у меня была возможность заняться разработкой для Mac около месяца, и я решил написать ее на C ++ с использованием библиотек Qt, так как я был достаточно знаком с ними, и время имело существенное значение.

Если у вас есть Mac, попробуйте! Существует много информации об этом, и есть несколько хороших инструментов для развития.

4
ответ дан itsmatt 29 November 2019 в 06:29
поделиться

Часть того, что делает Objective C настолько большим, не является языком (хотя это большое часть ot это), это - Какао (или CocoaTouch) платформа, которая соглашается с ним (по крайней мере, для 99% objc пользователей;-)

На практике, я раньше был программистом на C++ назад в старые "классические" дни Mac. Переключаясь на Objective C, Какао и Mac OS X, я нашел, что стал намного более продуктивным. Трудно для высказывания точно, сколько еще продуктивный, но 50% к 100% чувствует себя хорошо.

4
ответ дан schwa 29 November 2019 в 06:29
поделиться

При выполнении Linux, можно установить GNUStep, который предоставляет довольно хорошей совместимости с Какао. Это могло запустить Вас на разработке Objective-C/Cocoa, не владея Mac. Лучшие ресурсы для изучения Objective C [по-моему], с Apple.

http://developer.apple.com/referencelibrary/Cocoa/index.html

3
ответ дан dreamlax 29 November 2019 в 06:29
поделиться

WebKit изначально был проектом C ++ (khtml от KDE), который позже был адаптирован Apple для большей совместимости с Cocoa-средой и, таким образом, получил слой Objective-C.

1
ответ дан suraken 29 November 2019 в 06:29
поделиться

Это более динамично, чем C++ и в большой степени влиявшее от Smalltalk. Я не нахожу его "лучше", чем C++ - наоборот, но некоторые люди делает.

1
ответ дан fzwo 29 November 2019 в 06:29
поделиться

Для разработки на Mac и iPhone это определенно лучше. В последней версии есть GC, поэтому, если вам это нравится, вам, вероятно, понравится больше, чем C ++.

0
ответ дан Lou Franco 29 November 2019 в 06:29
поделиться

Что ж, если вы пишете код для некоторых платформ, таких как IPhone, Objective-C необходим. Objective-C также использует динамическую типизацию (во время выполнения), которую многие люди предпочитают статической (во время компиляции).

2
ответ дан 29 November 2019 в 06:29
поделиться

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

5
ответ дан 29 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: