User Tools

Site Tools


cpp:classes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:classes [2017/04/12 07:34] gthanoscpp:classes [2017/04/12 07:55] gthanos
Line 1: Line 1:
 ====== Κλάσεις και Αντικείμενα ====== ====== Κλάσεις και Αντικείμενα ======
  
-Όπως και στη Java οι κλάσεις στη C++ δημιουργούν νέους τύπους δεδομένων. Παρακάτω δίνεται ένα παράδειγμα δήλωσης της κλάσης //Rectangle// με παράλληλη δημιουργία ενός αντικειμένου της κλάσης αυτής.+Όπως και στη Java οι κλάσεις στη C++ δημιουργούν νέους τύπους δεδομένων. Παρακάτω δίνεται το παράδειγμα της κλάσης //Rectangle// με παράλληλη δημιουργία ενός αντικειμένου της κλάσης αυτής.
  
 <code c++ Rectangle.cpp> <code c++ Rectangle.cpp>
Line 11: Line 11:
     int width, height;     int width, height;
   public:   public:
-    void set_values (int,int); +    void setWidth(int w); 
-    int area() {return width*height;}+    void setHeight(int h); 
 +    int getWidth(); 
 +    int getHeight();
 }; };
  
-void Rectangle::set_values (int x, int y) { +void Rectangle::setWidth(int w) { width = w} 
-  width = x+void Rectangle::setHeight(int h) { height = h} 
-  height = y+int Rectangle::getWidth() { return width; } 
-}+int Rectangle::getHeight() { return height; }
  
 int main () { int main () {
   Rectangle rect;   Rectangle rect;
-  rect.set_values(3,4); +  rect.setWidth(5); 
-  cout << "area: " << rect.area();+  rect.setHeight(6); 
 +  cout << "area: " << rect.getWidth() * rect.getHeight() << endl;
   return 0;   return 0;
 } }
 </code> </code>
  
-Από τον παραπάνω κώδικα παρατηρούμε τα εξής: +Η παραπάνω κλάση διαθέτει τα πεδία τύπου //int width, height// και τις μεθόδους  
-  - Σε αναλογία με την Java οι κλάσεις περιέχουν πεδία και συναρτήσεις(μεθόδους). +
-  - Οποιαδήποτε μέθοδος μπορεί να οριστεί ολόκληρη μέσα στη δήλωση της κλάσης ή να ορίσει μόνο το πρότυπο της μέσα στη δήλωση της κλάσης και η υλοποίηση της εκτός της κλάσης. Η υλοποίηση της μεθόδου εκτός της κλάσης γίνεται με χρήση του τελεστή ''::'' (//scope operator//). Δηλώνοντας την υλοποίηση της μεθόδου μέσα στην κλάση είναι ισοδύναμο με το να την δηλώσετε έξω από την κλάση ως //inline// μέθοδο. +
-  - Μπορούμε να περιορίσουμε την προσβασιμότητα των πεδίων και των μεθόδων μίας κλάσης με χρήση [[cpp:acccess_modifiers|προσδιοριστών πρόσβασης]]. +
-  - Τα πεδία και οι μέθοδοι ενός αντικειμένου είναι προσβάσιμα με χρήση του τελεστή ''.'' ως εξής: ''<αντικείμενο>.<πεδίο ή μέθοδος>'' (για παράδειγμα ''rect.set_values(3,4)''; +
-  - Στην παραπάνω κλάση δεν ορίζεται κατασκευαστής. Η δήλωση ''Rect rect;'' ισοδυναμεί με την δημιουργία ενός αντικειμένου με χρήση του //default// κατασκευαστή.+
  
cpp/classes.txt · Last modified: 2021/05/06 23:01 (external edit)