Objective-C poskytuje objektovo orientované funkcie pre vývoj aplikácií pre Macintosh, ako napríklad dedičnosť a polymorfizmus. Jazyk je založený na programovacom jazyku C; preto môžete použiť svoje znalosti programovania v jazyku C na kódovanie v rámci Objective-C. Objective-C++ je premosťovací mechanizmus, ktorý umožňuje zdrojovým modulom Objective-C pracovať s triedami Objective-C++, ktoré môžu kompilovať a prepojiť s knižnicami kódu C++.
Nasledujúci jednoduchý príklad štvorcovej matice ukazuje obsah hlavičkového súboru C++ pre triedu Matrix. Trieda Matrix prichádza so štandardným konštruktorom a deštruktorom pre triedu C++ a metódy sú také, aké by ste očakávali od základného objektu štvorcovej matice:
class Matrix { public: Matrix( int inSize ); virtuálny ~Matrix(); int getSize( void ); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Maticový operátor+( const Matrix& inAddend ); private: int m_size; int[][] m_elements; };
Ak chcete používať Objective-C++, vaše moduly triedy Objective-C++ musia používať príponu súboru .mm. Toto povie kompilátoru Xcode, že trieda sa má skompilovať pomocou Objective-C++, čo vašej triede umožní používať kľúčové slová jazyka C++. Pomocou Objective-C++ môže vaša aplikácia vytvoriť objekt Matrix na vykonávanie základných operácií, ako je napríklad pridanie dvoch objektov Matrix dohromady. To predpokladá, že zdrojový modul Objective-C++ #importoval súbor C++ Matrix.h:
- (void)addTwoMatrices { Matrix matrixJedna( 3 ); // matica 3x3 Maticova maticaDva( 3 ); // dalsi int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // nastavenie prvkov matice na ich hodnoty matrixOne.setElement( rowIndex, colIndex, XXX ); // nastavíme prvky matice dva na iné hodnoty matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Maticová maticaSúčet = maticaJedna + maticaDva;
S Objective-C++ môžu vaše aplikácie využívať všetky dostupné knižnice tretích strán napísané pre C++.