2010-09-27 11 views
12

Quiero saber la diferencia entre C++ y objetivo-c y objetivo-C++. ¿Puede alguien darme la diferencia y podemos usar el C++ para el desarrollo del iPhone¿Cuál es la diferencia entre C++, objetivo-c y objetivo-C++?

Gracias, Madan Mohan

+0

Objective-C++ ?! Nunca he oído hablar de eso. Pure C++ 'is' objetivo, por lo que no veo ninguna razón para que Obj-C++ exista. Por favor corrígeme si estoy equivocado. – rhino

+10

@rhino: Objective-C++ es simplemente Objective-C (y sus frameworks) con código C++. Pure C++ no es objetivo, está orientado a objetos. – BoltClock

+2

@rhino: estás equivocado. –

Respuesta

27

C++ es el lenguaje de Bjarne Stroustroup basado en la adición de clases y metaprogramación a C de tal manera que pone la mayor parte del trabajo adicional en el compilador, y se basa en el menor esfuerzo posible en tiempo de ejecución.

Objective-C es el lenguaje de Brad Cox basado en la adición de una biblioteca de tiempo de ejecución de mensajes dinámicos estilo SmallTalk a C, con una pequeña cantidad de adición de sintaxis para que sea más fácil de usar.

Objective-C++ es, para decirlo sin rodeos, lo que se obtiene cuando se agrega el tiempo de ejecución de Objective-C y la sintaxis de C++. Tiene sus limitaciones (por ejemplo, no puede crear una subclase Objective-C de una clase C++ o viceversa, y Objective-C no le gusta los espacios de nombres C++) pero le permite usar clases C++ de objetos Objective-C y viceversa .

Puede utilizar Objective-C++ en el desarrollo del iPhone. Lo que esto significa en la práctica es que podrías escribir una aplicación cuyo modelo de objetos fuera completamente C++, donde la capa del controlador tendría que interactuar con Objective-C para usar las API de Cocoa Touch.

+3

También agregaré que Objective-C es un superconjunto * strict * de C, mientras que C++ no lo es. https://secure.wikimedia.org/wikipedia/en/wiki/Compatibility_of_C_and_C%2B%2B –

+2

Objective-C++ es una excelente forma de utilizar plantillas STL como vector y mapa, para las cuales no hay un buen servicio de bajo costo. análogos en Cocoa. – westsider

+0

) Puede proporcionar cualquier código de muestra que contenga tanto Objective-C como C++. –

5

C++ y Objective C fueron/son dos enfoques diferentes para la adición de la orientación a objetos con el objetivo C. actual Los compiladores de C también aceptan C++ como entrada, por lo que puede crear un programa con algunos archivos escritos en Objective-C y otros archivos escritos en C++. Cuando C++ se usa de esta manera, a menudo se llama Objective-C++.

+0

Bien, gracias. ¿Podemos usar C++ para el desarrollo de iPhone –

+1

@Madan: Sí. Debe usar al menos un pequeño Objective C donde su código interactúa con las bibliotecas integradas del iPhone, pero puede usar C++ para casi todo lo demás. –

0

1) C++ es un lenguaje derivado de C que añade Orientación a Objetos (OO) entre otras características. *
2) Objective-C es un lenguaje derivado de C que agrega Orientación de objetos (OO), entre otras características. *
3) Objective-C++ es Objective-C con el que puedes usar las clases de C++.

Usted puede utilizar C++ para el desarrollo del iPhone pero se necesita "un poco de" código de Objective-C para interactuar con las bibliotecas de iPhone.

(*) A pesar de que ambos tratan de resolver el mismo problema que lo hacen de manera muy diferente. Hay información sobre las diferencias en wikipedia y estoy seguro de que puedes usar google para encontrar más.

-4

PUEDES usar C++ para el desarrollo de iPhone, pero necesitarás "algo" de código Objective-C para interactuar con las bibliotecas de iPhone.

Es muy probable que esto le proporcione un código y posiblemente una acumulación de memoria. Como sabes, la programación de iOS debe ser lo más ajustada posible: minimiza tanto el tamaño de la biblioteca como las necesidades de memoria del tiempo de ejecución. La programación de iOS y los entornos de ejecución también están altamente optimizados para Objective C.

Pure ObjC es mucho mejor que C++ para iOS. A menos que intente utilizar una gran base de código C++ existente, probablemente sea mejor volver a escribir desde cero. Casi todos los C++ STL tienen análogos en los marcos iOS, a menudo más fáciles de usar y altamente optimizados por Apple. Aprenda la administración de memoria de Objective C, familiarícese con los marcos y protéjalo.

+3

: si utiliza ambos idiomas muy bien y el tamaño binario y el consumo de memoria son sus principales prioridades, C++ generalmente será el más pequeño en tamaño binario * y * consumo de memoria. bono adicional: los programas C++ generalmente se ejecutarán más rápido que los programas objc. no se moleste en reescribir sus programas existentes de C++ como programas objc. – justin

Cuestiones relacionadas