Az Objective-C objektumorientált funkciókat biztosít a Macintosh-alkalmazások fejlesztéséhez, mint például az öröklődés és a polimorfizmus. A nyelv a C programozási nyelven alapul; ezért használhatja C programozási ismereteit az Objective-C kódolásához. Az Objective-C++ egy hídmechanizmus, amely lehetővé teszi, hogy az Objective-C forrásmodulok együttműködjenek az Objective-C++ osztályokkal, amelyek lefordíthatják és összekapcsolhatják a C++ kódkönyvtárakat.
A négyzetmátrix alábbi egyszerű példája egy mátrix osztály C++ fejlécfájljának tartalmát mutatja be. A Matrix osztály tartalmazza a szabványos konstruktort és destruktort egy C++ osztályhoz, és a metódusok megegyeznek az alap négyzetmátrix objektumokkal szemben:
class Mátrix { public: Matrix( int inSize ); virtuális ~Matrix(); int getSize( void ); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Mátrix operátor+( const Mátrix& inAddend ); privát: int m_size; int[][] m_elements; };
Az Objective-C++ használatához az Objective-C++ osztálymoduloknak .mm fájlkiterjesztést kell használniuk. Ez közli az Xcode fordítójával, hogy az osztályt az Objective-C++ használatával kell lefordítani, ami lehetővé teszi, hogy az osztály C++ nyelvi kulcsszavakat használjon. Az Objective-C++ használatával az alkalmazás létrehozhat egy Matrix objektumot az alapvető műveletek elvégzéséhez, például két Matrix objektum összeadásához. Ez azt feltételezi, hogy az Objective-C++ forrásmodul #importálta a C++ Matrix.h fájlt:
- (void)addTwoMatrices { Matrix matrixOne( 3 ); // 3x3 mátrix Matrix matrixTwo( 3 ); // másik int sorIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // mátrix egy elemeinek értékei beállítása matrixOne.setElement( rowIndex, colIndex, XXX ); // a kettes mátrix elemeinek beállítása néhány más értékre matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Mátrix mátrixSum = matrixOne + matrixTwo;
Az Objective-C++ segítségével alkalmazásai ki tudják használni az összes elérhető, harmadik féltől származó, C++ nyelvre írt könyvtár előnyeit.