- một lớp có thể là bạn của nhiều lớp khác
- một lớp có thể có nhiều bạn
- bạn của bạn thì chưa chắc đã là bạn
- tình bạn không có tính thừa kế – phân lớp (hay lớp con) có tình bạn riêng của nó, nó không kế thừa tình bạn từ lớp dẫn xuất (hay lớp cha)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <iostream> using namespace std; class A { friend class B; friend class C; private: int field; protected: void print(void) { cout << "It's a secret, that field = " << field << endl; } }; class C { public: void DoIt(A &a) { a.print(); } }; class B { public: void DoIt(A &a, C &c) { a.field = 111; c.DoIt(a); } }; int main(void) { A a; B b; C c; b.DoIt(a,c); return 0; } |
1 |
It's a secret, that field = 111 |