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:55] gthanoscpp:classes [2017/04/12 08:14] gthanos
Line 31: Line 31:
 </code> </code>
  
-Η παραπάνω κλάση διαθέτει τα πεδία τύπου //int width, height// και τις μεθόδους +Η παραπάνω κλάση διαθέτει τα πεδία τύπου //int width, height// και τις μεθόδους //setWidth, setHeight, getWidth, getHeight//. Η κλάση δεν διαθέτει κατασκευαστή. Η δήλωση ''Rect rect;'' στη μέθοδο //main()// δημιουργεί ένα αντικείμενο με κλήση του default κατασκευαστή. 
 + 
 +===== Οι μέθοδοι της κλάσης ===== 
 + 
 +A member function of a class is a function that has its definition or its prototype within the class definition like any other variable. It operates on any object of the class of which it is a member, and has access to all the members of a class for that object. 
 + 
 +Οι μέθοδοι της κλάσης είναι συναρτήσεις οι οποίες έχουν απευθείας πρόσβαση στα πεδία (μεταβλητές) της κλάσης. Οι μέθοδοι ορίζονται μέσα στην κλάση ή ορίζεται το πρότυπο τους μέσα στην κλάση και η υλοποίηση τους εκτός. Από το παραπάνω παράδειγμα παρατηρήστε τους δύο διαφορετικούς τρόπους ορισμού των μεθόδων //setWidth// και //setHeight//
 + 
 +<code c++ Rectangle.cpp> 
 +#include <iostream> 
 +using namespace std; 
 + 
 +class Rectangle { 
 +  private: 
 +    int width, height; 
 +  public: 
 +    void setWidth(int w); 
 +    void setHeight(int h) { height = h; } 
 +}; 
 + 
 +void Rectangle::setWidth(int w) { width = w; } 
 +</code> 
 + 
 +Οι δύο παραπάνω τρόποι ορισμού μίας μεθόδου της κλάσης είναι ισοδύναμοι με την διαφορά ότι η μέθοδος //setHeight// ορίζεται ως //inline// ακόμη και εάν η λέξη //inline// δεν αναφέρεται ρητά. Για τον ορισμό της μεθόδου //setWidth// εκτός της κλάσης είναι απαραίτητη η χρήση του ονόματος της κλάσης ακολουθούμενη από το //scope operator// (''Rectangle::setWidth(int w)''). Η χρήση του //scope operator// εξασφαλίζει ότι η μέθοδος ανήκει στην κλάση και δεν αποτελεί αυτόνομη μέθοδο του προγράμματος. 
  
  
cpp/classes.txt · Last modified: 2021/05/06 23:01 (external edit)