亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++中protected,private,public三者的區(qū)別詳解

 更新時間:2025年10月28日 10:43:39   作者:狂奔的sherry  
這篇文章主要介紹了C++中protected,private,public三者區(qū)別的相關(guān)資料,C++?中?public、private?和?protected?訪問修飾符的主要區(qū)別在于它們對類成員的訪問權(quán)限控制,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

 一、訪問權(quán)限(最核心區(qū)別)

訪問限定符類內(nèi)(成員函數(shù))可訪問派生類可訪問類外(對象)可訪問
public???
protected???
private???

private 最封閉,protected 只對子類開放,public 對所有人開放。

二、示例:類內(nèi)、子類、外部訪問

#include <iostream>

class Base {
public:
    int pub = 1;          // 公開成員
protected:
    int prot = 2;         // 受保護成員
private:
    int priv = 3;         // 私有成員
};

class Derived : public Base {
public:
    void show() {
        std::cout << pub << "\n";   // ? 可訪問
        std::cout << prot << "\n";  // ? 可訪問(protected對子類可見)
        // std::cout << priv << "\n";  // ? 不可訪問(private對子類隱藏)
    }
};

int main() {
    Base b;
    Derived d;

    std::cout << b.pub << "\n";     // ? public 對外可訪問
    // std::cout << b.prot << "\n";  // ? protected 不可外部訪問
    // std::cout << b.priv << "\n";  // ? private 不可外部訪問
}

三、繼承時的訪問級別變化

繼承時,父類成員會因為繼承方式不同而改變可見性。

(?? 這點容易混)

繼承方式父類的 public 成員在子類中變成父類的 protected 成員在子類中變成父類的 private 成員
public 繼承publicprotected不可訪問
protected 繼承protectedprotected不可訪問
private 繼承privateprivate不可訪問

舉例:

class Base {
public:
    int a;
protected:
    int b;
private:
    int c;
};

class Derived1 : public Base {};
class Derived2 : protected Base {};
class Derived3 : private Base {};
成員Derived1中訪問級別Derived2中訪問級別Derived3中訪問級別
a(public)? public? protected? private
b(protected)? protected? protected? private
c(private)? 不可訪問? 不可訪問? 不可訪問

 四、實際應(yīng)用場景舉例

關(guān)鍵字典型用法場景說明
public對外提供接口類的外部接口函數(shù)(如 getter/setter、API)
protected給子類繼承用父類希望子類能訪問但外部不能(模板方法、基類輔助函數(shù))
private封裝內(nèi)部實現(xiàn)數(shù)據(jù)成員、工具函數(shù),不希望外界訪問

示例:封裝與繼承

class Animal {
public:
    void eat() { std::cout << "eat\n"; } // 公共接口
protected:
    void breathe() { std::cout << "breathe\n"; } // 子類能用
private:
    void think() { std::cout << "think\n"; } // 僅自己能用
};

class Dog : public Animal {
public:
    void run() {
        eat();      // ? 繼承自public
        breathe();  // ? 繼承自protected
        // think(); // ? 無法訪問
    }
};

五、總結(jié)口訣

限定符誰能訪問常用位置用途
public所有人類接口提供功能
protected自己 + 子類基類方法繼承擴展
private僅自己數(shù)據(jù)成員封裝隱藏

口訣:

public 人人能看,
protected 兒孫能看,
private 自家能看。

protected 用來干嘛?

用來讓基類保留“對子類開放”的接口,而仍然對外部隱藏。
比如虛函數(shù)模板方法模式(Template Method)。

在模板方法模式中,父類定義流程,子類填細節(jié)。
控制繼承范圍:讓子類訪問內(nèi)部工具函數(shù)。

防止外部直接創(chuàng)建或銷毀資源

類之間的協(xié)作,如框架開發(fā)。

class Widget {
public:
    void draw();         // 對外接口
protected:
    virtual void paint(); // 由子類重寫的繪制邏輯
};

public / protected / private 繼承的區(qū)別?

影響的是基類成員在派生類中的訪問級別,而不是繼承數(shù)量。

總結(jié)

到此這篇關(guān)于C++中protected,private,public三者區(qū)別的文章就介紹到這了,更多相關(guān)protected,private,public區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt自定義控件實現(xiàn)圓盤進度條

    Qt自定義控件實現(xiàn)圓盤進度條

    這篇文章主要為大家詳細介紹了Qt自定義控件實現(xiàn)圓盤進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++中的關(guān)鍵字volatile詳解

    C++中的關(guān)鍵字volatile詳解

    這篇文章主要介紹了C++中的關(guān)鍵字volatile使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C++引用和結(jié)構(gòu)體介紹

    C++引用和結(jié)構(gòu)體介紹

    這篇文章主要介紹了C++引用和結(jié)構(gòu)體,結(jié)構(gòu)體是我們自定義的復(fù)合類型,本質(zhì)上也是一種變量類型,所以一樣可以使用引用,下面來看看文章內(nèi)容詳細介紹,需要的朋友可以參考一下
    2021-11-11
  • C++逆向分析移除鏈表元素實現(xiàn)方法詳解

    C++逆向分析移除鏈表元素實現(xiàn)方法詳解

    這篇文章主要介紹了C++實現(xiàn)LeetCode(203.移除鏈表元素),本篇文章通過逆向分析的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2022-11-11
  • C語言中雙鏈表的基本操作

    C語言中雙鏈表的基本操作

    這篇文章主要介紹了C語言中雙鏈表的基本操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++中stack容器的使用

    C++中stack容器的使用

    本文主要介紹了C++中stack容器的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C語言獲取文件大小的兩種方式

    C語言獲取文件大小的兩種方式

    因為音視頻開發(fā)的需要,經(jīng)常會寫一些文件輸入輸出的測試程序,常常用到獲取文件大小的函數(shù),本篇文章就記錄一下常用的兩種獲取文件大小的方式,希望對大家有所幫助
    2023-11-11
  • c++如何控制對象的創(chuàng)建方式(禁止創(chuàng)建棧對象or堆對象)和創(chuàng)建的數(shù)量

    c++如何控制對象的創(chuàng)建方式(禁止創(chuàng)建棧對象or堆對象)和創(chuàng)建的數(shù)量

    這篇文章主要介紹了c++如何控制對象的創(chuàng)建方式和創(chuàng)建的數(shù)量,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)

    C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)

    這篇文章主要介紹了C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • VC++中HTControl的CHTButton按鈕控件類用法實例解析

    VC++中HTControl的CHTButton按鈕控件類用法實例解析

    這篇文章主要介紹了VC++中HTControl的CHTButton按鈕控件類用法,對于大家進行VC++項目開發(fā)有一定的幫助作用,需要的朋友可以參考下
    2014-08-08

最新評論