Da dove viene l'obiettivo C? C ++ o C?

8

Sono molto confuso su questo linguaggio di programmazione, Objective-C, che ho sentito è usato per sviluppare applicazioni iOS.

So che utilizza i principi di OOP. Sarebbe più facile imparare se conoscessi già il C ++? E il suo nome? è una combinazione tra il linguaggio di programmazione C e i principi OOP che uso in C ++?

    
posta appoll 05.05.2012 - 10:31
fonte

4 risposte

12

Brad Cox e gli amici hanno aggiunto un sottile strato di Smalltalk in cima a C.

L'Objective-C ha quindi molto più in comune con lo stile di invio dei messaggi altamente dinamico di Smalltalk OO rispetto a quello di C ++.

Una delle principali differenze è che in Objective-C non ti preoccupi troppo di quale classe è qualcosa: ti preoccupi di ciò che i messaggi capiscono. Puoi avere oggetti che modificano l'insieme di messaggi che comprendono, in fase di esecuzione.

Avendo detto che le due lingue hanno idee molto diverse su cosa sia OO, molte idee / principi sono ancora condivisi: ereditarietà, delega, polimorfismo e così via. Troverai facilmente molti esempi dei vari modelli OO nel codice scritto in entrambe le lingue.

    
risposta data 05.05.2012 - 10:46
fonte
2

Altri hanno sottolineato che Objective-C è uno strato OO in stile SmallTalk aggiunto a C, aggiungo che il C ++ è iniziato come uno strato OO in stile Simula aggiunto a C (e poi sono stati aggiunti i template per fare una buona misura).

    
risposta data 05.05.2012 - 16:52
fonte
1

Dalla bocca del cavallo :

Objective-C is a hybrid programming language[…]formed by grafting the Smalltalk-80 style of object-oriented programming onto a C language rootstock. Objective-C adds precisely one new data type, the object, to those C provides already, and precisely one new operation, the message expression. Like Smalltalk-80, Objective-C makes no compile-time distinction between different kinds (classes) of objects.

Per indirizzare "Sarebbe più facile imparare se conoscessi già il C ++?" Io non la penso così, ma non penso nemmeno che sarebbe male. Potresti essere più a tuo agio con concetti come classi e oggetti se già conosci il C ++, ma scoprirai che Objective-C implementa le classi in un modo molto diverso dal C ++. Per prendere a prestito una certa terminologia da Stroustrup, tutti i messaggi ObjC sono "virtuali" e possono essere ridefiniti da sottoclassi o anche le loro implementazioni scambiate nella classe di definizione. Questa e altre sottigliezze probabilmente annullano alcuni degli aspetti principali che otterrai dalla conoscenza del C ++.

    
risposta data 05.05.2012 - 15:44
fonte
0

L'obiettivo-C è C, con uno strato di Smalltalk.

Secondo Wikipedia :

Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.

È orientato agli oggetti, ma non direttamente dal C ++.

Quindi sì, è C con alcune delle abilità OO di Smalltalk .

    
risposta data 05.05.2012 - 13:41
fonte

Leggi altre domande sui tag