Objective-C býður upp á hlutbundna eiginleika fyrir þróun Macintosh forrita, svo sem erfðir og fjölbreytni. Tungumálið byggir á C forritunarmálinu; þess vegna geturðu notað C forritunarþekkingu þína til að kóða innan Objective-C. Objective-C++ er brúarbúnaður sem gerir Objective-C frumeiningum kleift að vinna með Objective-C++ flokkum, sem gætu safnað saman og tengt við C++ kóðasöfn.
Eftirfarandi einfalda dæmi um ferningsfylki sýnir innihald C++ hausskrár fyrir Matrix flokk. Matrix flokkurinn kemur með venjulegum smiði og destructor fyrir C++ flokk, og aðferðirnar eru það sem þú gætir búist við fyrir grunn ferningsfylkishlut:
class Matrix { public: Matrix( int inSize ); sýndar ~Matrix(); int getSize( ógilt ); int getDeterminant(void); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Matrix operator+( const Matrix& inAdddend ); einkamál: int m_stærð; int[][] m_elements; };
Til að nota Objective-C++ verða Objective-C++ flokkaeiningarnar þínar að nota skráarendingu .mm. Þetta segir þýðanda Xcode að bekkinn eigi að vera settur saman með Objective-C++, sem gerir bekknum þínum kleift að nota C++ tungumálalykilorð. Með því að nota Objective-C++ gæti appið þitt búið til Matrix hlut til að framkvæma grunnaðgerðir, eins og að bæta tveimur Matrix hlutum saman. Þetta gerir ráð fyrir að Objective-C++ frumeiningin hafi #innflutt C++ Matrix.h skrána:
- (void)addTwoMatrices { Matrix matrixOne( 3 ); // 3x3 fylki Matrix fylkiTveir( 3 ); // annar int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // set matrix one's elements to their values matrixOne.setElement( rowIndex, colIndex, XXX ); // stilltu þætti fylki tvö á nokkur önnur gildi matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matrix matrixSum = fylkiEinn + fylkiTveir;
Með Objective-C++ geta forritin þín nýtt sér öll tiltæk þriðja aðila bókasöfn sem eru skrifuð fyrir C++.