首頁 > 後端開發 > C++ > 存取說明符(私有、受保護、公用)如何影響繼承中的成員可存取性?

存取說明符(私有、受保護、公用)如何影響繼承中的成員可存取性?

Mary-Kate Olsen
發布: 2024-12-16 18:11:11
原創
120 人瀏覽過

How Do Access Specifiers (private, protected, public) Affect Member Accessibility in Inheritance?

理解繼承中的存取說明符

繼承允許類別從父類繼承成員和功能,但這些繼承成員的可訪問性取決於使用的​​存取說明符。存取說明符 private、protected 和 public 控制如何在繼承的類別中存取成員。

私有繼承

  • 基底類別的私有成員在衍生類別中。
  • 基底類別的受保護成員和公用成員在衍生類別中變成私有成員類別。
  • 衍生類別失去存取基底類別的私有成員的能力。

範例:

class Base {
private:
    int private_member;
};

class Derived : private Base {
public:
    void accessPrivate() {
        // Error: Cannot access 'private_member' because it's private in 'Base'
    }
};
登入後複製

受保護繼承

  • 受保護繼承
  • ?派生類別中受到保護。
基類的受保護成員在衍生類別中仍然受到保護。

衍生類別可以直接存取基底類別的受保護成員,也可以透過指向基底類別的指標存取

class Base {
protected:
    int protected_member;
};

class Derived : protected Base {
public:
    void accessProtected() {
        protected_member = 100; // Allowed
    }
};
登入後複製

範例:

  • 公共繼承
  • 公共和受保護成員基類在派生類別中成為公共類別。
基底類別的私有成員在衍生類別中保持私有。

衍生類別可以直接或透過存取基底類別的所有公共成員指標。

class Base {
public:
    int public_member;
};

class Derived : public Base {
public:
    void accessPublic() {
        public_member = 200; // Allowed
    }
};
登入後複製

範例:

  • 注意事項:
  • 注意事項:
訪問事項:訪問說明個類,不是每個物件。 衍生類別只能存取自己的基類物件的成員。 朋友可以存取類別的所有成員,無論存取說明符如何。

以上是存取說明符(私有、受保護、公用)如何影響繼承中的成員可存取性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板