Το 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 ); Operator matrix+( 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 { Matrix matrixOne( 3 ); // 3x3 matrix 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 ); } } Matrix matrixSum = matrixOne + matrixTwo;
Με το Objective-C++, οι εφαρμογές σας μπορούν να επωφεληθούν από όλες τις διαθέσιμες βιβλιοθήκες τρίτων κατασκευαστών που είναι γραμμένες για C++.