ใน C ++ มิตรภาพไม่ได้รับการสืบทอด หมายความว่า หากคลาสหลักมีฟังก์ชันของเพื่อน คลาสย่อยจะไม่รับฟังก์ชันดังกล่าวเป็นเพื่อน
ในตัวอย่างนี้ จะทำให้เกิดข้อผิดพลาดเนื่องจากฟังก์ชัน display() เป็นเพื่อนของ MyBaseClass แต่ไม่ใช่เพื่อนของ MyDerivedClass display() สามารถเข้าถึงสมาชิกส่วนตัวของ MyBaseClass
ตัวอย่าง
#include <iostream> using namespace std; class MyBaseClass { protected: int x; public: MyBaseClass() { x = 20; } friend void display(); }; class MyDerivedClass : public MyBaseClass { private: int y; public: MyDerivedClass() { x = 40; } }; void display() { MyDerivedClass derived; cout << "The value of private member of Base class is: " << derived.x << endl; cout << "The value of private member of Derived class is: " << derived.y << endl; } main() { display(); }
ผลลัพธ์
[Error] 'int MyDerivedClass::y' is private [Error] within this context