User Tools

Site Tools


cpp:classes

This is an old revision of the document!


Κλάσεις και Αντικείμενα

Όπως και στη Java οι κλάσεις στη C++ δημιουργούν νέους τύπους δεδομένων. Παρακάτω δίνεται ένα παράδειγμα δήλωσης της κλάσης Rectangle με παράλληλη δημιουργία ενός αντικειμένου της κλάσης αυτής.

Rectangle.cpp
#include <iostream>
using namespace std;
 
class Rectangle {
  private:
    int width, height;
  public:
    void set_values (int,int);
    int area() {return width*height;}
};
 
void Rectangle::set_values (int x, int y) {
  width = x;
  height = y;
}
 
int main () {
  Rectangle rect;
  rect.set_values(3,4);
  cout << "area: " << rect.area();
  return 0;
}

Από τον παραπάνω κώδικα παρατηρούμε τα εξής:

  1. Σε αναλογία με την Java οι κλάσεις περιέχουν πεδία και συναρτήσεις(μεθόδους).
  2. Οποιαδήποτε μέθοδος μπορεί να οριστεί ολόκληρη μέσα στη δήλωση της κλάσης ή να ορίσει μόνο το πρότυπο της μέσα στη δήλωση της κλάσης και η υλοποίηση της εκτός της κλάσης. Η υλοποίηση της μεθόδου εκτός της κλάσης γίνεται με χρήση του τελεστή :: (scope operator). Δηλώνοντας την υλοποίηση της μεθόδου μέσα στην κλάση είναι ισοδύναμο με το να την δηλώσετε έξω από την κλάση ως inline μέθοδο.
  3. Μπορούμε να περιορίσουμε την προσβασιμότητα των πεδίων και των μεθόδων μίας κλάσης με χρήση προσδιοριστών πρόσβασης.
  4. Τα πεδία και οι μέθοδοι ενός αντικειμένου είναι προσβάσιμα με χρήση του τελεστή . ως εξής: <αντικείμενο>.<πεδίο ή μέθοδος> (για παράδειγμα rect.set_values(3,4);
  5. Στην παραπάνω κλάση δεν ορίζεται κατασκευαστής. Η δήλωση Rect rect; ισοδυναμεί με την δημιουργία ενός αντικειμένου με χρήση του default κατασκευαστή.
cpp/classes.1491982494.txt.gz · Last modified: 2017/04/12 06:34 (external edit)