Objective-C: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Analisi del linguaggio: traduzione |
→Analisi del linguaggio: traduzione |
||
Riga 595:
Oltre alla [[programmazione strutturata]] del C, C++ supporta direttamente la [[programmazione ad oggetti]], la programmazione generica e la [[metaprogrammazione]]. C++ è inoltre corredato di una estesa libreria standard che include numerose [[oggetto container (informatica)|classi container]]. L'Objective C, invece, aggiunge solo delle caratteristiche [[object-oriented]] al C; esso, nella sua versione più "pura" non offre lo stesso numero di in termini di librerie standard, ma in molti contesti dove viene usato, viene corredato di una libreria sul modello di quella di [[OpenStep]], di [[Cocoa]] o di [[GNUstep]] le quali forniscono funzionalità sinili a quelle offerte dalla libreria standard di C++.
Un'altra notevole differenza consiste nel fatto che l'Objective C fornisce un maggior supporto run-time alla [[riflessione (informatica)|riflessione]] rispetto a C++. In Objective C si può interrogaro un oggetto riguarde alle sue stesse proprietà, ad esempio se possa o meno rispondere ad un dato messaggio, mentre in C++ ciò è impossibile a meno di fare ricorso a librerie esterne. Comunque è possibile chiedere se due oggetti sono o meno dello stesso tipo (inclusi i tipi predefiniti) e se un oggetto è istanza di una data [[classe (informatica)|classe]] (o [[superclasse (informatica)|superclasse]]).
L'uso della riflessione fa parte di una più ampia distinzione tra caratteristiche dinamiche ([[run-time]]) e statiche ([[compile-time]]) dei linguaggi. Sebbene sia Objective C che C++ implementino un misto di entrambe le caratteristiche, Objective C è decisamente più orientato verso le decisioni dinamiche, mentre C++ verso quelle effettuate al momento della compilazione.
==Bibliografia==
|