Avatar ·

ما الفرق بين الوراثة public و protected و private في C++؟

مرحبًا أيها الزملاء! بدأت في تعلم لغة C++ وواجهت ارتباكًا في الوراثة. أفهم أن هناك ثلاثة محددات وصول: public و protected و private. لكن عندما أحاول تطبيقها على الوراثة، أضيع. على سبيل المثال، لدي فئة أساسية: ```cpp class Base { public: int pub = 1; protected: int prot = 2; private: int priv = 3; }; ``` أريد إنشاء فئة Derived ترث من Base. حاولت كتابة `class Derived : public Base` و `class Derived : protected Base` و `class Derived : private Base`. في كل حالة يكون السلوك مختلفًا، لكنني لا أستطيع فهم الفرق بالضبط. لماذا، على سبيل المثال، في الوراثة private لا يمكنني الوصول إلى pub من الخارج؟ وما هو "توفر" أعضاء الفئة الوريثة؟ أشعر أنني أفقد بعض المنطق الأساسي. سأكون ممتنًا لشرح مع أمثلة، ويفضل من وجهة نظر كيف يؤثر ذلك على الكود عند محاولة استخدام الأعضاء الموروثة. شكرًا مقدمًا! <<>>