Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

6.2 Κλάσεις και αντικείμενα στην γλώσσα C++

Οι κλάσεις και τα αντικείμενα αποτελούν βασικά στοιχεία της γλώσσας προγραμματισμού C++. Ορίζοντας μια κλάση, δημιουργούμε ένα νέο τύπο δεδομένων που μπορεί να περιέχει δεδομένα και συναρτήσεις που λειτουργούν πάνω σε αυτά τα δεδομένα.

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

Οι κλάσεις στη C++ επιτρέπουν τη χρήση δημόσιων (public), ιδιωτικών (private) και προστατευμένων (protected) μελών για τον έλεγχο της πρόσβασης στα δεδομένα και τις μεθόδους. Επίσης, η C++ υποστηρίζει την κληρονομικότητα, όπου μια κλάση μπορεί να κληρονομεί τις ιδιότητες μιας άλλης κλάσης, καθώς και την πολυμορφισμό, όπου μπορούμε να χρησιμοποιήσουμε αντικείμενα διαφορετικών κλάσεων με μία κοινή βάση.

Οι κλάσεις και τα αντικείμενα στη C++ μας επιτρέπουν να οργανώνουμε τον κώδικα μας σε λογικές μονάδες, να απομονώνουμε τις λειτουργίες και τα δεδομένα, και να δημιουργούμε ευέλικτες και επαναχρησιμοποιήσιμες εφαρμογές.

Για να δημιουργήσετε μια κλάση στη C++, χρησιμοποιήστε τη λέξη-κλειδί “class” ακολουθούμενη από το όνομα της κλάσης και τις παρενθέσεις {}. Μέσα στις παρενθέσεις προσθέτουμε τις μεταβλητές και τις μεθόδους που ανήκουν στην κλάση:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Car {
public:
string brand;
string model;
int year;
};
class Car { public: string brand; string model; int year; };
class Car {
  public:
    string brand;
    string model;
    int year;
};

Στο παραπάνω παράδειγμα, δημιουργούμε μια κλάση με όνομα “Car”. Η κλάση αυτή έχει τρεις δημόσιες (public) μεταβλητές: brand, model και year. Η λέξη-κλειδί public σημαίνει ότι οι μεταβλητές αυτές μπορούν να προσπελαστούν από οποιοδήποτε τμήμα κώδικα εκτός της κλάσης.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Car myCar;
Car myCar;
Car myCar;

Στο παραπάνω παράδειγμα, δηλώνουμε ένα αντικείμενο της κλάσης Car με το όνομα myCar.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
myCar.brand = "BMW";
myCar.model = "X5";
myCar.year = 1999;
myCar.brand = "BMW"; myCar.model = "X5"; myCar.year = 1999;
myCar.brand = "BMW";
myCar.model = "X5";
myCar.year = 1999;

Στο παραπάνω παράδειγμα, ορίζουμε τις τιμές των χαρακτηριστικών του αντικειμένου myCar χρησιμοποιώντας τον τελεστή “.” για να προσπελάσουμε τις μεταβλητές brand, model και year της κλάσης Car.

[adinserter block=”2″]

Ας δούμε ένα παράδειγμα δημιουργίας αντικειμένου και ορισμού τιμών στα χαρακτηριστικά του στη C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
class Car {
public:
string brand; // Μεταβλητή για το brand του αυτοκινήτου
string model; // Μεταβλητή για το μοντέλο του αυτοκινήτου
int year; // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου
};
int main() {
Car myCar; // Δημιουργία ενός αντικειμένου της κλάσης Car με όνομα myCar
myCar.brand = "BMW"; // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου myCar
myCar.model = "X5"; // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου myCar
myCar.year = 1999; // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου myCar
cout << "My car is a " << myCar.year << " " << myCar.brand << " " << myCar.model << endl; // Εκτύπωση των χαρακτηριστικών του αυτοκινήτου
return 0;
}
#include <iostream> using namespace std; class Car { public: string brand; // Μεταβλητή για το brand του αυτοκινήτου string model; // Μεταβλητή για το μοντέλο του αυτοκινήτου int year; // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου }; int main() { Car myCar; // Δημιουργία ενός αντικειμένου της κλάσης Car με όνομα myCar myCar.brand = "BMW"; // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου myCar myCar.model = "X5"; // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου myCar myCar.year = 1999; // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου myCar cout << "My car is a " << myCar.year << " " << myCar.brand << " " << myCar.model << endl; // Εκτύπωση των χαρακτηριστικών του αυτοκινήτου return 0; }
#include <iostream>
using namespace std;

class Car {
  public:
    string brand; // Μεταβλητή για το brand του αυτοκινήτου
    string model; // Μεταβλητή για το μοντέλο του αυτοκινήτου
    int year; // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου
};

int main() {
  Car myCar; // Δημιουργία ενός αντικειμένου της κλάσης Car με όνομα myCar
  myCar.brand = "BMW"; // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου myCar
  myCar.model = "X5"; // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου myCar
  myCar.year = 1999; // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου myCar
  cout << "My car is a " << myCar.year << " " << myCar.brand << " " << myCar.model << endl; // Εκτύπωση των χαρακτηριστικών του αυτοκινήτου
  return 0;
}

Ο κώδικας δημιουργεί μια κλάση με το όνομα “Car”, η οποία έχει τρία δημόσια μέλη: μια μεταβλητή “brand” τύπου string για τη μάρκα του αυτοκινήτου, μια μεταβλητή “model” τύπου string για το μοντέλο του αυτοκινήτου, και μια μεταβλητή “year” τύπου int για το έτος κατασκευής του αυτοκινήτου.

Στη συνέχεια, ο κώδικας στη συνάρτηση “main” δημιουργεί ένα αντικείμενο της κλάσης “Car” με το όνομα “myCar”. Στο αντικείμενο αυτό ανατίθενται τιμές για τα μέλη “brand”, “model” και “year” με τη χρήση του τελεστή “.”. Συγκεκριμένα, η μεταβλητή “brand” λαμβάνει την τιμή “BMW”, η μεταβλητή “model” λαμβάνει την τιμή “X5”, και η μεταβλητή “year” λαμβάνει την τιμή 1999.

Τέλος, ο κώδικας χρησιμοποιεί την εντολή “cout” για να εκτυπώσει το κείμενο “My car is a”, ακολουθούμενο από την τιμή του μέλους “year”, την τιμή του μέλους “brand” και την τιμή του μέλους “model” του αντικειμένου “myCar”. Το αποτέλεσμα εκτυπώνεται στην οθόνη.

Ο κώδικας ολοκληρώνεται με την επιστροφή της τιμής 0 από τη συνάρτηση “main”, υποδηλώνοντας ότι ο κώδικας ολοκληρώθηκε με επιτυχία.

Μπορείτε να δημιουργήσετε πολλά αντικείμενα μίας κλάσης στη C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
// Ορισμός της κλάσης Car
class Car {
public:
string brand; // Μεταβλητή για τον κατασκευαστή του αυτοκινήτου
string model; // Μεταβλητή για το μοντέλο του αυτοκινήτου
int year; // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου
};
int main() {
Car car1; // Δημιουργία αντικειμένου της κλάσης Car με όνομα car1
car1.brand = "BMW"; // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου car1
car1.model = "X5"; // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου car1
car1.year = 1999; // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου car1
Car car2; // Δημιουργία αντικειμένου της κλάσης Car με όνομα car2
car2.brand = "Mercedes"; // Ανάθεση τιμής "Mercedes" στη μεταβλητή brand του αντικειμένου car2
car2.model = "C-Class"; // Ανάθεση τιμής "C-Class" στη μεταβλητή model του αντικειμένου car2
car2.year = 2005; // Ανάθεση τιμής 2005 στη μεταβλητή year του αντικειμένου car2
// Εκτύπωση πληροφοριών των αυτοκινήτων στην οθόνη
cout << "My cars are a " << car1.year << " " << car1.brand << " " << car1.model << " and a " << car2.year << " " << car2.brand << " " << car2.model << endl;
return 0;
}
#include <iostream> using namespace std; // Ορισμός της κλάσης Car class Car { public: string brand; // Μεταβλητή για τον κατασκευαστή του αυτοκινήτου string model; // Μεταβλητή για το μοντέλο του αυτοκινήτου int year; // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου }; int main() { Car car1; // Δημιουργία αντικειμένου της κλάσης Car με όνομα car1 car1.brand = "BMW"; // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου car1 car1.model = "X5"; // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου car1 car1.year = 1999; // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου car1 Car car2; // Δημιουργία αντικειμένου της κλάσης Car με όνομα car2 car2.brand = "Mercedes"; // Ανάθεση τιμής "Mercedes" στη μεταβλητή brand του αντικειμένου car2 car2.model = "C-Class"; // Ανάθεση τιμής "C-Class" στη μεταβλητή model του αντικειμένου car2 car2.year = 2005; // Ανάθεση τιμής 2005 στη μεταβλητή year του αντικειμένου car2 // Εκτύπωση πληροφοριών των αυτοκινήτων στην οθόνη cout << "My cars are a " << car1.year << " " << car1.brand << " " << car1.model << " and a " << car2.year << " " << car2.brand << " " << car2.model << endl; return 0; }
#include <iostream>
using namespace std;

// Ορισμός της κλάσης Car
class Car {
  public:
    string brand;  // Μεταβλητή για τον κατασκευαστή του αυτοκινήτου
    string model;  // Μεταβλητή για το μοντέλο του αυτοκινήτου
    int year;      // Μεταβλητή για το έτος κατασκευής του αυτοκινήτου
};

int main() {
  Car car1;  // Δημιουργία αντικειμένου της κλάσης Car με όνομα car1
  car1.brand = "BMW";       // Ανάθεση τιμής "BMW" στη μεταβλητή brand του αντικειμένου car1
  car1.model = "X5";        // Ανάθεση τιμής "X5" στη μεταβλητή model του αντικειμένου car1
  car1.year = 1999;         // Ανάθεση τιμής 1999 στη μεταβλητή year του αντικειμένου car1

  Car car2;  // Δημιουργία αντικειμένου της κλάσης Car με όνομα car2
  car2.brand = "Mercedes";  // Ανάθεση τιμής "Mercedes" στη μεταβλητή brand του αντικειμένου car2
  car2.model = "C-Class";   // Ανάθεση τιμής "C-Class" στη μεταβλητή model του αντικειμένου car2
  car2.year = 2005;         // Ανάθεση τιμής 2005 στη μεταβλητή year του αντικειμένου car2

  // Εκτύπωση πληροφοριών των αυτοκινήτων στην οθόνη
  cout << "My cars are a " << car1.year << " " << car1.brand << " " << car1.model << " and a " << car2.year << " " << car2.brand << " " << car2.model << endl;

  return 0;
}

Ο παραπάνω κώδικας δημιουργεί μια κλάση με όνομα “Car”, η οποία περιέχει μεταβλητές για την μάρκα, το μοντέλο και το έτος κατασκευής ενός αυτοκινήτου. Στη συνέχεια, στη συνάρτηση main(), δημιουργούνται δύο αντικείμενα της κλάσης “Car”, car1 και car2, και αναθέτονται τιμές στις μεταβλητές τους (μάρκα, μοντέλο, έτος).

Τέλος, εκτυπώνονται πληροφορίες για τα αυτοκίνητα στην οθόνη με τη χρήση της συνάρτησης cout της βιβλιοθήκης <iostream>. Τα δεδομένα των αυτοκινήτων εκτυπώνονται με τη χρήση των μελών των αντικειμένων car1 και car2.

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

26 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων