Objective-C pruža objektno orijentirane značajke za razvoj Macintosh aplikacija, kao što su nasljeđivanje i polimorfizam. Jezik se temelji na programskom jeziku C; stoga možete koristiti svoje znanje programiranja C za kodiranje unutar Objective-C. Objective-C++ je mehanizam za premošćivanje koji omogućuje Objective-C izvornim modulima da rade s Objective-C++ klasama, koje se mogu kompilirati i povezati s C++ knjižnicama koda.
Sljedeći jednostavan primjer kvadratne matrice prikazuje sadržaj C++ datoteke zaglavlja za klasu Matrix. Klasa Matrix dolazi sa standardnim konstruktorom i destruktorom za klasu C++, a metode su ono što biste očekivali 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); Operator matrice+( const Matrix& inAddend ); privatno: int m_size; int[][] m_elementi; };
Da biste koristili Objective-C++, vaši moduli klase Objective-C++ moraju koristiti ekstenziju datoteke .mm. Ovo govori Xcode-ovom prevodiocu da se klasa treba prevesti korištenjem Objective-C++, što će vašoj klasi omogućiti korištenje ključnih riječi C++ jezika. Koristeći Objective-C++, vaša aplikacija može stvoriti Matrix objekt za izvođenje osnovnih operacija, kao što je dodavanje dva Matrix objekta zajedno. Ovo pretpostavlja da je izvorni modul Objective-C++ #importirao datoteku C++ Matrix.h:
- (void)addTwoMatrices { Matrix matrixOne( 3 ); // 3x3 matrica Matrična matricaDva( 3); // drugi int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // postaviti svoje elemente matrice na njihove vrijednosti matrixOne.setElement( rowIndex, colIndex, XXX ); // postavlja elemente matrice dva na neke druge vrijednosti matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Zbroj matrice matrice = matricaJedan + matricaDva;
Uz Objective-C++, vaše aplikacije mogu iskoristiti prednosti svih dostupnih biblioteka trećih strana napisanih za C++.