日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++:C++中public protected private关键字用法

發布時間:2025/3/15 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++:C++中public protected private关键字用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++:C++中public protected private關鍵字用法

筆者這里主要針對C++中public protected private關鍵字做一個較全面的總結。首先public protected private關鍵字用于訪問控制的,也被稱為訪問說明符

主要用途有2種。

  • 用法1:在class類(含struct結構體,struct在C++中是所有成員都公開的類)中 作為成員變量/成員函數的修飾符
  • 用法2:在C++的繼承體系中作為從繼承修飾符使用

下面我們分開進行介紹。

在class類中

在class類中作為其成員的訪問控制說明符

在class中默認使用private訪問說明符,除非指定特定訪問說明符。離成員往上最近的即為該成員的訪問說明符,如果沒有訪問說明符 則使用默認訪問說明符private。

在struct中所有成員默認使用public訪問說明符,除非指定特定訪問說明符。離成員往上最近的即為該成員的訪問說明符,如果沒有訪問說明符 則使用默認訪問說明符public。

在class/struct中的成員如果為public修飾,該成員可在其他任何作用域內被訪問到。protected和private 在當前class范圍外不可訪問(繼承體現中另當別論,見下章節),除非友元

舉例如下:

#include <iostream> using namespace std;class A {// 沒有訪問說明符,則使用默認訪問說明符privatevoid fun1(){cout << "A:fun1()" << endl; };int m1;public:fun2(){cout << "A:fun2()" << endl; };int m2;protected:fun3(){cout << "A:fun3()" << endl; };int m3;private:fun4(){cout << "A:fun4()" << endl; };int m4;// 友元函數,可為普通全局函數 也可為class成員函數 friend void friendFun1(); }; struct B {// 沒有訪問說明符,則使用默認訪問說明符publicvoid fun1(){cout << "B:fun1()" << endl; };int m1;public:fun2(){cout << "B:fun2()" << endl; };int m2;protected:fun3(){cout << "B:fun3()" << endl; };int m3;private:fun4(){cout << "B:fun4()" << endl; };int m4; }; // 友元函數,都成為某個class的朋友了,當然無話不談了,class類中的所有成員亦可訪問。 void friendFun1() {cout << "===friendFun1 begin===" << endl;A a; a.fun1(); // oka.fun2(); // oka.fun3(); // oka.fun4(); // okcout << "===friendFun1 end===" << endl; }int main(int argc,char* argv[]) {A a; // a.fun1(); // 編譯errora.fun2(); // ok ,class之外的作用域可訪問public成員, // a.fun3(); // 編譯error // a.fun4(); // 編譯errorfriendFun1(); // ok, class的友元函數 所有成員亦可訪問。 return 0; }

在繼承體系中

這里直接說結論了。

  • class省略繼承訪問說明符,默認為private私有繼承

  • struct省略繼承訪問說明符,默認為public公有繼承

  • public公開繼承:基類的所有公開成員可作為派生類的公開成員訪問,基類的所有受保護成員可作為派生類的受保護成員訪問(基類的私有成員始終不可訪問,除非設為友元)。

  • protected受保護繼承:基類的所有公開和受保護成員可作為派生類的受保護成員訪問(基類的私有成員始終不可訪問,除非設為友元)

  • private私有繼承:基類的所有公開和受保護成員可作為派生類的私有成員訪問(基類的私有成員始終不可訪問,除非設為友元)

舉例如下:

#include <iostream> using namespace std;class Base {public:void fun1(){cout << "Base:fun1()" << endl; };int m1;protected:fun2(){cout << "Base:fun2()" << endl; };int m2;private:fun3(){cout << "Base:fun3()" << endl; };int m3; };// class省略繼承訪問說明符,默認為private繼承 class A:Base {public:void Fun1(){cout << "A:Fun1()" << endl; } protected:void Fun2(){cout << "A:Fun2()" << endl; } private:void Fun3(){cout << "A:Fun3()" << endl; } }; // struct省略繼承訪問說明符,默認為public繼承 struct B:Base {public:void Fun1(){cout << "B:Fun1()" << endl; } protected:void Fun2(){cout << "B:Fun2()" << endl; } private:void Fun3(){cout << "B:Fun3()" << endl; } };/* public公開繼承 基類的所有公開成員可作為派生類的公開成員訪問, 基類的所有受保護成員可作為派生類的受保護成員訪問 (基類的私有成員始終不可訪問,除非設為友元) */ class C:public Base {public:void Fun1(){cout << "C:Fun1()" << endl; } protected:void Fun2(){cout << "C:Fun2()" << endl; } private:void Fun3(){cout << "C:Fun3()" << endl; } }; /* protected保護繼承 基類的所有公開和受保護成員可作為派生類的受保護成員訪問 (基類的私有成員始終不可訪問,除非設為友元) */ class D:protected Base {public:void Fun1(){cout << "D:Fun1()" << endl; } protected:void Fun2(){cout << "D:Fun2()" << endl; } private:void Fun3(){cout << "D:Fun3()" << endl; } }; /* private私有繼承 基類的所有公開和受保護成員可作為派生類的私有成員訪問 (基類的私有成員始終不可訪問,除非設為友元) */ class E:private Base {public:void Fun1(){cout << "E:Fun1()" << endl; } protected:void Fun2(){cout << "E:Fun2()" << endl; } private:void Fun3(){cout << "E:Fun3()" << endl; } }; int main(int argc,char* argv[]) { // B和C都是 public公有繼承,其父類公有成員將成為子類公有成員,父類受保護成員也將成為子類受保護成員 B b; C c; b.fun1(); // okc.fun1(); // ok// A和E都是 private私有繼承,其父類的 公有成員和 受保護成員, 都將成為子類的 私有成員A a;E e; // a.fun1(); // 編譯error // e.fun1(); // 編譯error// D 為protected受保護繼承, 其父類的 受保護成員將成為 子類受保護成員 D d; // d.fun1(); // 編譯error return 0; }

總結

以上是生活随笔為你收集整理的C++:C++中public protected private关键字用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女被捅个不停 | 精品人妻少妇一区二区三区 | 亚洲欧美视频 | 欧美 亚洲 另类 激情 另类 | 中日韩av在线 | 久久久久亚洲av成人片 | 伊人成人在线视频 | 中文在线不卡 | 黄色高潮 | 国产精品久久久久久在线观看 | 欧美成人a交片免费看 | 亚洲国产欧美一区二区三区深喉 | 日韩天堂网 | 麻豆一区二区99久久久久 | 天天做天天看 | 婷婷五月花| 人人模人人爽 | 欧美成人精品激情在线视频 | 91黑人精品一区二区三区 | www.欧美色| 国产精品久久综合青草亚洲AV | 久久99精品久久久久 | 在线v| 中文字幕一区二区三区精华液 | bt男人天堂 | 日韩一区二区三区四区五区 | 火影忍者羞羞漫画 | 色欲无码人妻久久精品 | 少妇被按摩师摸高潮了 | 精品免费一区二区三区 | 亚洲xx网站 | 亚欧美在线观看 | 新x8x8拨牐拨牐永久免费影库 | 国产精品日日摸天天碰 | julia中文字幕在线 | 久久精品国产欧美亚洲人人爽 | 横恋母在线观看 | 人妻少妇一区二区三区 | 久久久经典| 女人囗交吞精囗述 | 婷婷中文网 | 一级做a免费视频 | 天天爽夜夜爽 | 黄色片hd | 国产精品一区二区麻豆 | 美女91网站 | 中文在线资源天堂 | 被黑人各种姿势猛c哭h文1 | 中文字幕毛片 | 久久精品视频无码 | 99re免费视频 | 91欧美在线视频 | 国产一区二区三区在线观看视频 | 国产污污视频 | 97视频精品 | 亚洲一区二区黄片 | 欧美色第一页 | 国产精品无码内射 | 欧美骚少妇 | 亚洲一二区视频 | 久久精品av| 在线观看中文字幕一区 | 性色福利 | 亚洲av永久一区二区三区蜜桃 | 无码人妻av一区二区三区波多野 | 久在线观看 | 五月综合色 | 桃色成人网 | 国产精品成人久久久久久久 | 亚洲xx网站| 色女人天堂 | 女性向片在线观看 | 久久精品免费观看 | 亚洲av日韩av高潮潮喷无码 | 天天射天天草 | 成人无码精品1区2区3区免费看 | 亚洲av人人夜夜澡人人 | 91九色丨porny丨国产jk | 天堂网2014| 男人和女人日批 | 特级淫片aaaaaaa级附近的 | av一卡| 女女高潮h冰块play失禁百合 | 欧州一区二区 | 好了av在线 | 男插女av | 国v精品久久久网 | 精品少妇一区二区 | 极品美女销魂一区二区三区 | 日韩经典在线 | 乱淫的女高中暑假调教h | 日韩精品一区二区三区无码专区 | 久久精品国产欧美亚洲人人爽 | 国产超91| av黄色国产 | 国产中文在线视频 | 黄色aa视频 | 欧美性猛交xxx乱大交3蜜桃 | 日韩少妇 |