Objective-C предоставя обектно-ориентирани функции за разработка на приложения на Macintosh, като например наследяване и полиморфизъм. Езикът е базиран на езика за програмиране C; следователно можете да използвате знанията си по програмиране на C, за да кодирате в Objective-C. Objective-C++ е мостов механизъм, който позволява на изходните модули на Objective-C да работят с Objective-C++ класове, които могат да компилират и свързват с библиотеки с код на C++.
Следният прост пример за квадратна матрица показва съдържанието на C++ заглавен файл за клас Matrix. Класът Matrix идва със стандартния конструктор и деструктор за C++ клас, а методите са това, което бихте очаквали за основен квадратен матричен обект:
class Matrix { public: Matrix( int inSize ); виртуален ~Matrix(); int getSize( void); int getDeterminant( void); void setElement( int inRow, int inCol, int inValue); int getElement( int inRow, int inCol ); Матричен оператор+( const Matrix& inAddend ); частен: int m_size; int[][] m_elements; };
За да използвате Objective-C++, вашите модули на клас Objective-C++ трябва да използват разширението на файла .mm. Това казва на компилатора на Xcode, че класът трябва да бъде компилиран с помощта на Objective-C++, което ще позволи на вашия клас да използва ключови думи на езика C++. Използвайки Objective-C++, вашето приложение може да създаде обект Matrix за извършване на основни операции, като например добавяне на два обекта Matrix заедно. Това предполага, че изходният модул Objective-C++ е #импортирал файла C++ Matrix.h:
- (void)addTwoMatrices { Матрица matrixOne( 3 ); // 3x3 матрица Matrix matrixTwo( 3 ); // друг int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // задаване на нечии елементи от матрицата на техните стойности matrixOne.setElement( rowIndex, colIndex, XXX ); // задаване на елементите на матрица две на някои други стойности matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Матрица matrixSum = matrixOne + matrixTwo;
С Objective-C++ вашите приложения могат да се възползват от всички налични библиотеки на трети страни, написани за C++.