Я изучал C++ в течение нескольких месяцев теперь и нахожу это превосходным языком хотя его льготы.
Я задавался вопросом, что точно является так называемым Objective C ++ и если стоит изучить это как основной язык разработки для предназначения для сред Apple (т.е. Mac OS X, iPhone OS). При поиске вокруг сети я только нашел несколько хороших статей: главным образом запись Википедии и один от Mac Центр Dev.
Википедия говорит:
Objective C ++ является фронтендом к Набору Компилятора GNU, который может скомпилировать исходные файлы, которые используют комбинацию синтаксиса Objective C и C++. Objective C ++ добавляет к C++, который Objective C расширений добавляет к C.
Статья Mac Dev Center добавляет:
Компилятор Objective C Apple позволяет Вам свободно смешивать C++ и код Objective C в том же исходном файле. Этот Objective-C/C ++ гибрид языка называют Objective C ++. С ним можно использовать существующие библиотеки C++ из приложений Objective C.
Статья Apple называет Objective C ++ язык. Действительно ли это правильно?
Я хотел бы знать следующее:
Да, вы должны выучить Objective-C++, когда вы хотите развить конкурентные комиссионные силы (т.е. настолько хорошие, что люди готовы за них платить) Apple-приложений.
Это действительно ничто иное, как Objective-C и C++, объединенные в одном файле.
Для Цели-С используйте любую из ссылок в популярных блогах/списках рассылки/группах новостей Apple, посвященных разработке приложений. Особенно тот, который предоставляется непосредственно компанией Apple.
Для C++ это то же самое, есть десятки блогов/списков рассылки/инструкций по началу работы. Но в то время как C и его дополнение Objective-C довольно просты и легки в изучении, если вы уже понимаете программирование. Си++ - это совершенно другой и сложный зверь. Получите несколько хороших книг и выучите его (через 10 лет вы сможете полностью понять язык :-), но вы сможете писать программы на Си++, используя лишь малую часть этих знаний.
Итак, а теперь волшебный вопрос, зачем использовать Си++, если можно обойтись без Цели-С. Ответ довольно прост. Помимо очевидной упомянутой оболочки существующих библиотек Си++, Objective-C - это медленный, в первую очередь - вызов метода. Обычная реклама заключается в том, чтобы сделать что-то серьезное в ваших методах, чтобы избежать этого поражающего во времени поражения, которое проявляется в этом языке.
Но особенно для контейнеров стоит подумать об использовании шаблонов на Си++. Вектор намного быстрее, чем NSArray. Если ваш набор данных большой, вы почувствуете разницу. Также я нахожу контейнеры C++ более простыми в использовании, так как они избегают типовых передач, которые вы имеете дело с Objective-C.
С медленным ARM процессором на iPad и iPhone это не является преждевременной оптимизацией.
К сожалению, нельзя смешивать классы C++ и Cocoa, поэтому C++ следует использовать только для алгоритмических данных. Для графического интерфейса необходимо использовать классы Cocoa и Objective-C.
Получение правильного баланса между C++ и Objective-C - это часть навыков, которые необходимо развить как яблочному программисту.
objective-C ++ действительно просто смешивает объективность-C с C ++. Поскольку он позволяет синтаксис от обоих вы можете утверждать, что это новый язык.
Я в первую очередь использую OBJC ++ (исходные файлы .mm), когда я должен использовать код объекта-C с помощью библиотеки C ++. Это удобно иметь возможность звонить C ++ в этом случае. Лично я не знаю много людей, которые на самом деле действительно смешают C ++ и overeive-c.
1) Я сомневаюсь в этом, потому что каждый из них - суперс языка C. Я не рассматриваю цель - C ++ совершенно новый язык. Это просто смесь обоих, которые дают вам дополнительные возможности - то есть повторно используйте существующий код C ++ или использовать более высокий C ++ в более разных секциях критического кода, или используйте код C ++, где не подвергается объектному интерфейсу Objective-C / Cocoa Вещи, как последовательные порты / IOCTLS, OpenGL, ...)
2) Я думаю, что ресурсы относительно этой темы A
3) проходят ... Я имею в виду, что вы считаете большим. Я просто знаю из группы проектов (может быть, не все их коммерческие в том смысле, что вы можете купить программное обеспечение в магазине), которые используют эту смесь по причинам, перечисленным в 1.
Во многих больших проектах используется какая-либо Объектива-С++. Например, Camino, Chromium и Firefox - все это существенные проекты с открытым исходным кодом, включающие в себя Objective-C++.