Objective-C ofron veçori të orientuara nga objekti për zhvillimin e aplikacioneve Macintosh, të tilla si trashëgimia dhe polimorfizmi. Gjuha bazohet në gjuhën e programimit C; prandaj, ju mund të përdorni njohuritë tuaja të programimit C për të koduar brenda Objective-C. Objective-C++ është një mekanizëm urë që lejon modulet burimore të Objective-C të punojnë me klasat Objective-C++, të cilat mund të përpilohen dhe lidhen me bibliotekat e kodeve C++.
Shembulli i mëposhtëm i thjeshtë i një matrice katrore tregon përmbajtjen e një skedari të kokës C++ për një klasë Matrix. Klasa Matrix vjen me konstruktorin dhe destruktorin standard për një klasë C++, dhe metodat janë ato që prisni për një objekt bazë të matricës katrore:
class Matrix { public: Matrix( int inSize ); virtuale ~Matrix(); int getSize(void); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Operatori i matricës+(const Matrica& inAddend); private: int m_size; int[][] m_elemente; };
Për të përdorur Objective-C++, modulet tuaja të klasës Objective-C++ duhet të përdorin shtesën e skedarit .mm. Kjo i tregon përpiluesit të Xcode se klasa duhet të kompilohet duke përdorur Objective-C++, gjë që do t'i lejojë klasës tuaj të përdorë fjalë kyçe të gjuhës C++. Duke përdorur Objective-C++, aplikacioni juaj mund të krijojë një objekt Matrix për të kryer operacione bazë, të tilla si shtimi i dy objekteve të Matricës së bashku. Kjo supozon se moduli burimor Objective-C++ ka #importuar skedarin C++ Matrix.h:
- (void)addTwoMatrices { Matrica MatricaOne( 3 ); // 3x3 matricë Matricë matricëTwo( 3 ); // një tjetër int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // vendos elementet e matricës në vlerat e tyre matrixOne.setElement( rowIndex, colIndex, XXX ); // vendos elementet e matricës dy me disa vlera të tjera matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matrica e matricës Shuma = matricaNjë + matricaDy;
Me Objective-C++, aplikacionet tuaja mund të përfitojnë nga të gjitha bibliotekat e disponueshme të palëve të treta të shkruara për C++.