„Objective-C“ teikia į objektą orientuotas funkcijas, skirtas „Macintosh“ programų kūrimui, pvz., paveldėjimą ir polimorfizmą. Kalba yra pagrįsta C programavimo kalba; todėl galite naudoti savo C programavimo žinias koduodami Objective-C. Objective-C++ yra tilto mechanizmas, leidžiantis Objective-C šaltinio moduliams dirbti su Objective-C++ klasėmis, kurios gali kompiliuoti ir susieti su C++ kodų bibliotekomis.
Šis paprastas kvadratinės matricos pavyzdys rodo C++ antraštės failo, skirto Matrix klasei, turinį. Matricos klasėje yra standartinis C++ klasės konstruktorius ir destruktorius, o metodai yra tokie, kokių tikitės iš pagrindinio kvadratinės matricos objekto:
class Matrica { public: Matrix( int inSize ); virtuali ~Matrica(); int getSize( void ); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Matricos operatorius+( const Matrica& inAddend ); privatus: int m_size; int[][] m_elementai; };
Norint naudoti Objective-C++, jūsų Objective-C++ klasės moduliai turi naudoti failo plėtinį .mm. Tai nurodo „Xcode“ kompiliatoriui, kad klasė turi būti sudaryta naudojant „Objective-C++“, o tai leis jūsų klasei naudoti C++ kalbos raktinius žodžius. Naudodama „Objective-C++“ programa gali sukurti „Matrix“ objektą, kad atliktų pagrindines operacijas, pvz., pridėtų du „Matrix“ objektus. Daroma prielaida, kad Objective-C++ šaltinio modulis #importavo C++ Matrix.h failą:
- (void)addTwoMatrices { Matrica matrixOne( 3 ); // 3x3 matrica Matrica matricaTwo( 3 ); // kita int rowIndex = 0; int colIndeksas = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // nustato matricos elementus į jų reikšmes matrixOne.setElement( rowIndex, colIndex, XXX ); // nustatyti matricos du elementus į kai kurias kitas reikšmes matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matricos matricos suma = matricaOne + matricaTwo;
Naudodami „Objective-C++“, jūsų programos gali pasinaudoti visomis turimomis trečiųjų šalių bibliotekomis, sukurtomis C++.