首頁 > 後端開發 > C++ > 主體

C++ 函式繼承詳解:什麼是繼承存取權?

PHPz
發布: 2024-05-03 08:42:02
原創
1076 人瀏覽過

在 C 中,衍生類別對基底類別函數的存取權限取決於繼承層級:public:衍生類別可以無限制地存取和重寫基底類別 public 函數。 protected:衍生類別只能存取和重寫基底類別的 protected 函數,不能直接從基底類別的物件呼叫。 private:衍生類別不能存取基底類別的 private 函數。

C++ 函数继承详解:什么是继承访问权限?

C 函數繼承詳解:什麼是繼承存取權?

在 C 中,當衍生類別繼承基底類別時,它可以繼承基底類別的成員,包括函數。根據繼承權限的不同,衍生類別對基底類別函數的存取方式也不同。

繼承存取權等級

C 中有三種繼承存取權等級:

  • public:衍生類別可以無限制地存取和重寫基底類別的public 函數。
  • protected:衍生類別只能存取和重寫基底類別的 protected 函數,不能直接從基底類別的物件呼叫。
  • private:衍生類別不能存取基底類別的 private 函數。

實戰案例

考慮以下基底類別與衍生類別:

class Base {
public:
  void public_function();
protected:
  void protected_function();
private:
  void private_function();
};

class Derived : public Base {
public:
  // 派生类可以无限制地访问 public 函数
  void call_public_function() {
    public_function();
  }

protected:
  // 派生类只能访问 protected 函数
  void call_protected_function() {
    protected_function();
  }
};
登入後複製

由這個例子可以看出:

  • 衍生類Derived 可以透過call_public_function 方法存取基底類別的public_function
  • 衍生類別也可以透過 call_protected_function 方法存取基底類別的 protected_function
  • 衍生類別不能直接存取或重寫基底類別的 private_function,因為它是私有的。

注意

值得注意的是,雖然基底類別的protected 函數不能從基底類別的物件直接調用,但它們可以從衍生類別的protected 或public 函數中調用,前提是衍生類別有權存取這些protected 函數。

以上是C++ 函式繼承詳解:什麼是繼承存取權?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!