Objective-C ponuja objektno usmerjene funkcije za razvoj aplikacij Macintosh, kot sta dedovanje in polimorfizem. Jezik temelji na programskem jeziku C; zato lahko svoje znanje programiranja C uporabite za kodiranje znotraj Objective-C. Objective-C++ je premostitveni mehanizem, ki izvornim modulom Objective-C omogoča delo z razredi Objective-C++, ki se lahko prevedejo in povežejo s kodnimi knjižnicami C++.
Naslednji preprost primer kvadratne matrike prikazuje vsebino datoteke glave C++ za razred Matrix. Razred Matrix je opremljen s standardnim konstruktorjem in destruktorjem za razred C++, metode pa so tisto, kar bi pričakovali za osnovni kvadratni matrični objekt:
class Matrix { public: Matrix( int inSize ); virtualni ~Matrix(); int getSize( void); int getDeterminant( void); void setElement( int inRow, int inCol, int inValue); int getElement( int inRow, int inCol ); Matrični operator+( const Matrix& inAddend ); zasebno: int m_size; int[][] m_elementi; };
Za uporabo Objective-C++ morajo vaši moduli razreda Objective-C++ uporabljati pripono datoteke .mm. To pove prevajalniku Xcode, da je treba razred prevesti z uporabo Objective-C++, kar bo vašemu razredu omogočilo uporabo ključnih besed jezika C++. Z uporabo Objective-C++ lahko vaša aplikacija ustvari objekt Matrix za izvajanje osnovnih operacij, kot je dodajanje dveh objektov Matrix skupaj. To predpostavlja, da je izvorni modul Objective-C++ #uvozil datoteko C++ Matrix.h:
- (void)addTwoMatrices { Matrix matrixOne( 3 ); // matrika 3x3 Matrična matrikaTwo( 3); // še en int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // nastavi matrične elemente na njihove vrednosti matrixOne.setElement( rowIndex, colIndex, XXX ); // nastavi elemente matrike dva na nekatere druge vrednosti matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matrična matrikaSum = matrixOne + matrixTwo;
Z Objective-C++ lahko vaše aplikacije izkoristijo vse razpoložljive knjižnice drugih proizvajalcev, napisane za C++.