Μαθήματα και αντικείμενα C ++

Σε αυτό το σεμινάριο, θα μάθουμε για αντικείμενα και τάξεις και πώς να τα χρησιμοποιήσουμε στο C ++ με τη βοήθεια παραδειγμάτων.

Σε προηγούμενα μαθήματα, μάθαμε για συναρτήσεις και μεταβλητές. Μερικές φορές είναι επιθυμητό να τοποθετήσετε σχετικές συναρτήσεις και δεδομένα σε ένα μέρος, έτσι ώστε να είναι λογικό και ευκολότερο να εργαστείτε.

Ας υποθέσουμε, πρέπει να αποθηκεύσουμε το μήκος, το πλάτος και το ύψος ενός ορθογώνιου δωματίου και να υπολογίσουμε την περιοχή και τον όγκο του.

Για να χειριστούμε αυτήν την εργασία, μπορούμε να δημιουργήσουμε τρεις μεταβλητές, για παράδειγμα, μήκος, πλάτος και ύψος μαζί με τις συναρτήσεις calculateArea()και calculateVolume().

Ωστόσο, στο C ++, αντί να δημιουργούμε ξεχωριστές μεταβλητές και συναρτήσεις, μπορούμε επίσης να τυλίξουμε αυτά τα σχετικά δεδομένα και συναρτήσεις σε ένα μόνο μέρος (δημιουργώντας αντικείμενα ). Αυτό το πρότυπο προγραμματισμού είναι γνωστό ως αντικειμενοστραφής προγραμματισμός.
Αλλά πριν μπορέσουμε να δημιουργήσουμε αντικείμενα και να τα χρησιμοποιήσουμε στο C ++, πρέπει πρώτα να μάθουμε για τα μαθήματα .

Κατηγορία C ++

Η τάξη είναι ένα σχεδιάγραμμα για το αντικείμενο.
Μπορούμε να σκεφτούμε μια τάξη ως σκίτσο (πρωτότυπο) ενός σπιτιού. Περιέχει όλες τις λεπτομέρειες σχετικά με τα πατώματα, τις πόρτες, τα παράθυρα κ.λπ. Με βάση αυτές τις περιγραφές χτίζουμε το σπίτι. Το σπίτι είναι το αντικείμενο.

Δημιουργήστε μια τάξη

Μια τάξη ορίζεται στο C ++ χρησιμοποιώντας λέξη-κλειδί classακολουθούμενο από το όνομα της τάξης.

Το σώμα της τάξης ορίζεται μέσα στα αγκύλια και τερματίζεται με ερωτηματικό στο τέλος.

 class className ( // some data // some functions );

Για παράδειγμα,

 class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );

Εδώ, ορίσαμε μια τάξη με το όνομα Room.

Οι μεταβλητές μήκος, πλάτος και ύψος που δηλώνονται μέσα στην τάξη είναι γνωστές ως μέλη δεδομένων . Και, οι συναρτήσεις calculateArea()και calculateVolume()είναι γνωστές ως λειτουργίες μέλους μιας τάξης.

Αντικείμενα C ++

Όταν ορίζεται μια κλάση, καθορίζεται μόνο η προδιαγραφή για το αντικείμενο. δεν έχει εκχωρηθεί μνήμη ή χώρος αποθήκευσης.

Για να χρησιμοποιήσουμε τις λειτουργίες δεδομένων και πρόσβασης που ορίζονται στην τάξη, πρέπει να δημιουργήσουμε αντικείμενα.

Σύνταξη για καθορισμό αντικειμένου σε C ++

 className objectVariableName;

Μπορούμε να δημιουργήσουμε αντικείμενα της Roomκλάσης (που ορίζονται στο παραπάνω παράδειγμα) ως εξής:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Εδώ, δημιουργούνται δύο αντικείμενα room1 και room2 της Roomτάξης sampleFunction(). Ομοίως, τα αντικείμενα room3 και room4 δημιουργούνται στο main().

Όπως μπορούμε να δούμε, μπορούμε να δημιουργήσουμε αντικείμενα μιας τάξης σε οποιαδήποτε λειτουργία του προγράμματος. Μπορούμε επίσης να δημιουργήσουμε αντικείμενα μιας τάξης μέσα στην ίδια την τάξη ή σε άλλες τάξεις.

Επίσης, μπορούμε να δημιουργήσουμε όσα αντικείμενα θέλουμε από μία μόνο κλάση.

C ++ Πρόσβαση σε μέλη και συναρτήσεις μελών

Μπορούμε να έχουμε πρόσβαση στα μέλη δεδομένων και στις λειτουργίες των μελών μιας κλάσης χρησιμοποιώντας έναν .τελεστή (κουκκίδας) Για παράδειγμα,

 room2.calculateArea();

Αυτό θα καλέσει τη calculateArea()συνάρτηση μέσα στην Roomκλάση για το αντικείμενο room2.

Παρομοίως, η πρόσβαση στα μέλη δεδομένων είναι:

 room1.length = 5.5;

Σε αυτήν την περίπτωση, αρχικοποιεί τη μεταβλητή μήκους των δωματίων 1 έως 5.5.

Παράδειγμα 1: Αντικείμενο και τάξη στον προγραμματισμό C ++

 // Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Παραγωγή

 Area of Room = 1309 Volume of Room = 25132.8

In this program, we have used the Room class and its object room1 to calculate the area and volume of a room.

In main(), we assigned the values of length, breadth, and height with the code:

 room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

We then called the functions calculateArea() and calculateVolume() to perform the necessary calculations.

Note the use of the keyword public in the program. This means the members are public and can be accessed anywhere from the program.

As per our needs, we can also create private members using the private keyword. The private members of a class can only be accessed from within the class. For example,

 class Test ( private:
  int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

On the other hand, b and function2() are accessible from everywhere in the program.

Για να μάθετε περισσότερα σχετικά με τις δημόσιες και τις ιδιωτικές λέξεις-κλειδιά, επισκεφθείτε το εκπαιδευτικό πρόγραμμα C ++ Class Access Modifiers.

Παράδειγμα 2: Χρήση δημόσιου και ιδιωτικού στην τάξη C ++

 // Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Παραγωγή

 Περιοχή δωματίου = 1309 Όγκος δωματίου = 25132.8

Το παραπάνω παράδειγμα είναι σχεδόν πανομοιότυπο με το πρώτο παράδειγμα, εκτός του ότι οι μεταβλητές τάξης είναι πλέον ιδιωτικές.

Δεδομένου ότι οι μεταβλητές είναι πλέον ιδιωτικές, δεν μπορούμε να έχουμε πρόσβαση απευθείας σε αυτές main(). Ως εκ τούτου, η χρήση του ακόλουθου κώδικα θα ήταν άκυρη:

 // invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

Αντ 'αυτού, χρησιμοποιούμε το δημόσιο λειτούργημα getData()για να προετοιμάσει τις ιδιωτικές μεταβλητές μέσω των παραμέτρων λειτουργίας double len, double brthκαι double hgt.

Για να μάθετε περισσότερα σχετικά με αντικείμενα και τάξεις, επισκεφθείτε αυτά τα θέματα:

  • Κατασκευαστές C ++
  • Πώς να περάσετε και να επιστρέψετε ένα αντικείμενο από μια συνάρτηση;

ενδιαφέροντα άρθρα...