日韩性视频-久久久蜜桃-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关键字用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 无码少妇一区二区三区芒果 | 亚洲一级特黄毛片 | 一区二区三区四区久久 | 亚洲午夜一区 | 亚洲激情一区 | 白浆网站 | 黄a免费网络 | 日韩 欧美 国产 综合 | 亚洲一卡二卡三卡 | 91福利一区| 玖玖免费| 久久精品7 | 99精品久久久 | 丁香伊人网 | 麻豆传媒在线 | 欧美18—19性高清hd4k | 欧美色图小说 | 亚洲h视频| 麻豆系列 | 经典三级视频 | 瑟瑟久久 | 国产调教一区 | 精品视频一区二区在线观看 | 国产自产在线视频 | 操极品少妇| 三a大片 | 99热欧美| 麻豆91精品| 日韩深夜福利 | 欧美乱妇15p| 中字幕视频在线永久在线观看免费 | 一级黄在线观看 | 成人做爰69片免费观看 | 一区视频在线免费观看 | 小泽玛利亚在线 | 超碰网址 | 亚州av在线 | 日本免费小视频 | 手机在线看片日韩 | 毛片视频免费播放 | 久久国产在线观看 | 日韩城人网站 | 男人的天堂网在线 | 四虎免费网址 | 极品熟妇大蝴蝶20p 国产偷自拍视频 | 真人抽搐一进一出视频 | xxxx96| av免费观| 国产在线观看99 | 亚洲精品乱码久久久久久麻豆不卡 | 久久成年人 | 欧美美女一级片 | 无码人妻一区二区三区免费n鬼沢 | 潘金莲激情呻吟欲求不满视频 | 国产主播喷水 | 91在线精品观看 | 日本高清黄色电影 | 亚洲人掀裙打屁股网站 | 精品国产乱码久久久久久1区二区 | 亚洲视频在线观看一区二区三区 | 成人吃奶视频 | 女同亚洲精品一区二区三 | 特黄一级大片 | 成人性毛片 | 日日噜噜夜夜狠狠久久丁香五月 | 天天色天天爱 | 人人射人人插 | 欧美精品91 | 人人干夜夜操 | 亚洲老女人视频 | 97香蕉超级碰碰久久免费软件 | 国产一区二区在线看 | 奇米久久久 | 桃色在线视频 | 中文亚洲av片在线观看 | 91在线精品秘密一区二区 | 亚洲免费色视频 | 久久牛牛| 欧美精品久久久久久久久老牛影院 | 自拍偷拍亚洲欧美 | 偷偷在线观看免费高清av | 欧美三级不卡 | 久久婷婷五月国产色综合激情 | 国产精品黄在线观看 | 99热这里只有精品8 国产一卡二 | 夜夜嗨一区 | 欧美永久视频 | 免费在线观看高清影视网站 | 欧美aaaaaa| aa毛片视频 | 黄色污污网站 | 亚洲精品男人的天堂 | av每日更新在线观看 | 色悠久久久 | 亚洲一级Av无码毛片久久精品 | 亚洲欧美校园春色 | 六月久久| av中文字幕免费在线观看 | 秋霞视频在线观看 |