| Ví dụ | Kết quả |
| #include class Rectangle { private: int w; int h; public: Rectangle(int, int); friend int Area(Rectangle); }; Rectangle::Rectangle(int w, int h){ this->w = w; this->h = h; } int Area(Rectangle rec){ return (rec.w*rec.h); } int main() { Rectangle rec(2, 5); cout< return 0; } | 10 |
Lớp bạn: nếu ta có hai lớp A và B, và khai báo rằng B là bạn của A, thì khi đó, các phương thức của lớp A có thể truy cập đến các thuộc tính private và protected của lớp B.
| Ví dụ | Kết quả |
| #include class Rectangle { private: int w; int h; public: Rectangle(int, int); friend class MakeSquare; }; class MakeSquare{ private: int w; int h; public: MakeSquare(Rectangle); void ShowSquare(void); }; MakeSquare::MakeSquare(Rectangle rec){ this->w = max(rec.w, rec.h); this->h = max(rec.w, rec.h); } void MakeSquare::ShowSquare(void){ cout<<”Square: “< } int main() { Rectangle rec(2, 5); MakeSquare mk(rec); mk.ShowSquare(); return 0; } | Square: 5×5 |
Bạn cũng lưu ý rằng A là bạn của B, thì không có nghĩa là B cũng là bạn của A. Như vậy, tình bạn có thể là một chiều hoặc hai chiều tùy thuộc vào sự quy định của người lập trình.
No comments:
Post a Comment