Objective-C nodrošina objektorientētas funkcijas Macintosh lietojumprogrammu izstrādei, piemēram, pārmantošanu un polimorfismu. Valoda ir balstīta uz C programmēšanas valodu; tāpēc varat izmantot savas C programmēšanas zināšanas, lai kodētu Objective-C ietvaros. Objective-C++ ir tilta mehānisms, kas ļauj Objective-C avota moduļiem strādāt ar Objective-C++ klasēm, kuras varētu apkopot un saistīt ar C++ kodu bibliotēkām.
Šis vienkāršais kvadrātveida matricas piemērs parāda C++ galvenes faila saturu Matrix klasei. Matrix klasei ir standarta konstruktors un destruktors C++ klasei, un metodes ir tādas, ko jūs varētu sagaidīt pamata kvadrātveida matricas objektam:
class Matrix { public: Matrix( int inSize ); virtuālā ~Matrix(); int getSize(spēkā); int getDeterminant(spēkā); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Matricas operators+( const Matrix& inAddend ); privāts: int m_size; int[][] m_elements; };
Lai izmantotu Objective-C++, jūsu Objective-C++ klases moduļiem ir jāizmanto faila paplašinājums .mm. Tas norāda Xcode kompilatoram, ka klase ir jākompilē, izmantojot Objective-C++, kas ļaus jūsu klasei izmantot C++ valodas atslēgvārdus. Izmantojot Objective-C++, jūsu lietotne var izveidot Matrix objektu, lai veiktu pamatdarbības, piemēram, pievienotu divus Matrix objektus. Tas pieņem, ka Objective-C++ avota modulis ir #importējis C++ Matrix.h failu:
- (void)addTwoMatrices { Matrix matrixOne(3); // 3x3 matrica Matrix matrixTwo( 3 ); // cits int rowIndex = 0; int colIndekss = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // iestatīt matricas vienu elementu vērtībām matrixOne.setElement( rowIndex, colIndex, XXX ); // iestatīt matricas divi elementiem uz dažām citām vērtībām matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matrix matrixSum = matrixOne + matrixTwo;
Izmantojot Objective-C++, jūsu lietotnes var izmantot visas pieejamās trešo pušu bibliotēkas, kas rakstītas C++.