User Tools

Site Tools


cpp:friend_methods

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cpp:friend_methods [2019/04/19 10:04] – [Φιλικές Συναρτήσεις] gthanoscpp:friend_methods [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Φιλικές Συναρτήσεις ======+====== Φιλικές συναρτήσεις και φιλικές κλάσεις  ======
  
-Μία φιλική συνάρτηση της κλάσης είναι μία συνάρτηση που δεν είναι μέλος της κλάσης, αλλά έχει πρόσβαση στα //private// και //protected// μέλη της κλάσης, όπως θα είχε και μία συνάρτηση μέλος. Για να είναι μία συνάρτηση φιλική (//friend//) θα πρέπει να την δηλώσετε ως τέτοια στη δήλωση της κλάσης. Δείτε το παράδειγμα της συνάρτησης //modifyDimensions// η οποία είναι φίλια συνάρτηση της κλάσης //Rectangle//. Παρατηρήστε ότι η συνάρτηση έχει απευθείας πρόσβαση στα //private// πεδία της κλάσης //Rectangle//.+===== Φιλικές Συναρτήσεις ===== 
 + 
 +Μία φιλική συνάρτηση της κλάσης είναι μία συνάρτηση που δεν είναι μέλος της κλάσης, αλλά έχει πρόσβαση στα //private// και //protected// μέλη της κλάσης, όπως θα είχε και μία συνάρτηση μέλος. Για να είναι μία συνάρτηση φιλική (//friend//) θα πρέπει να την δηλώσετε ως τέτοια στη δήλωση της κλάσης. Δείτε το παράδειγμα της συνάρτησης //modifyDimensions// η οποία είναι φιλική συνάρτηση της κλάσης //Rectangle//. Παρατηρήστε ότι η συνάρτηση έχει απευθείας πρόσβαση στα //private// πεδία της κλάσης //Rectangle//.
  
 <code cpp Rectangle.hpp> <code cpp Rectangle.hpp>
Line 16: Line 18:
     int getWidth();     int getWidth();
     int getHeight();     int getHeight();
-    friend void modifyDimensions(Rectangle r, int dw, int dh);+    friend void modifyDimensions(Rectangler, int dw, int dh);
 }; };
  
Line 28: Line 30:
 int Rectangle::getHeight() { return height; } int Rectangle::getHeight() { return height; }
  
-void modifyDimensions(Rectangle r, int dw, int dh) {+void modifyDimensions(Rectangler, int dw, int dh) {
   r.width += dw;   r.width += dw;
   r.height += dh;   r.height += dh;
Line 34: Line 36:
 </code> </code>
  
-<code cpp RectangleUsage.hpp+<code cpp RectangleUsage.cpp
-#include "Rectangle.cpp"+#include "Rectangle.hpp"
  
 int main () { int main () {
Line 46: Line 48:
 </code> </code>
  
-====== Φιλικές Κλάσεις ======+===== Φιλικές Κλάσεις =====
  
 Σε αναλογία με τις φιλικές συναρτήσεις μπορείτε να έχετε και φιλικές κλάσεις που έχουν πρόσβαση στο σύνολο των πεδίων κλάσης. Στο παρακάτω παράδειγμα, η κλάση //Cuboid// είναι φιλική της κλάσης //Rectangle//. Ως φιλική κλάση έχει πρόσβαση στο σύνολο των πεδίων και των μεθόδων της κλάσης //Rectangle// Σε αναλογία με τις φιλικές συναρτήσεις μπορείτε να έχετε και φιλικές κλάσεις που έχουν πρόσβαση στο σύνολο των πεδίων κλάσης. Στο παρακάτω παράδειγμα, η κλάση //Cuboid// είναι φιλική της κλάσης //Rectangle//. Ως φιλική κλάση έχει πρόσβαση στο σύνολο των πεδίων και των μεθόδων της κλάσης //Rectangle//
  
-<code cpp Rectangle.cpp>+<code cpp Rectangle.hpp>
 #include <iostream> #include <iostream>
 using namespace std; using namespace std;
Line 77: Line 79:
 </code> </code>
  
-<code cpp Cuboid.cpp>+<code cpp Cuboid.hpp>
 #include <iostream> #include <iostream>
 using namespace std; using namespace std;
  
-#include "Rectangle.cpp"+#include "Rectangle.hpp"
  
 class Cuboid { class Cuboid {
Line 104: Line 106:
 using namespace std; using namespace std;
  
-#include "Cuboid.cpp"+#include "Cuboid.hpp"
  
 int main() { int main() {
cpp/friend_methods.1555668268.txt.gz · Last modified: 2019/04/19 09:04 (external edit)