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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中不同的继承方式

發(fā)布時(shí)間:2025/4/5 c/c++ 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中不同的继承方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1 C++中不同的繼承方式
      • 1.1 繼承中被忽視的細(xì)節(jié)
      • 1.2 不同的繼承方式
      • 1.3 繼承中只選擇public繼承

1 C++中不同的繼承方式

1.1 繼承中被忽視的細(xì)節(jié)

如下:

1.2 不同的繼承方式

C++中支持三種不同的繼承方式:

  • public繼承:父類成員在子類中保持原有訪問級別。
  • private繼承:父類成員在子類中變?yōu)樗接谐蓡T。
  • protected繼承:父類中的公有成員變?yōu)楸Wo(hù)成員,其它成員保持不變。

繼承與訪問級別深度實(shí)踐:

#include <iostream> #include <string>using namespace std;class Parent { protected:int m_a; protected:int m_b; public:int m_c;void set(int a, int b, int c){m_a = a;m_b = b;m_c = c;} };class Child_A : public Parent { public:void print(){cout << "m_a" << m_a << endl;cout << "m_b" << m_b << endl;cout << "m_c" << m_c << endl;} };class Child_B : protected Parent { public:void print(){cout << "m_a" << m_a << endl;cout << "m_b" << m_b << endl;cout << "m_c" << m_c << endl;} };class Child_C : private Parent { public:void print(){cout << "m_a" << m_a << endl;cout << "m_b" << m_b << endl;cout << "m_c" << m_c << endl;} };int main() { Child_A a;Child_B b;Child_C c;a.m_c = 100;// b.m_c = 100; // Child_B 保護(hù)繼承自 Parent, 所以所有的 public 成員全部變成了 protected 成員, 因此外界無法訪問// c.m_c = 100; // Child_C 私有繼承自 Parent, 所以所有的成員全部變成了 private 成員, 因此外界無法訪問a.set(1, 1, 1);// b.set(2, 2, 2);// c.set(3, 3, 3);a.print();b.print();c.print();return 0; }

關(guān)于繼承的不同方式,如下內(nèi)容特別需要注意:

  • 無論通過什么方式(public、protected、private)繼承,在子類內(nèi)部均可訪問父類中的public、protected成員,private成員不可訪問(如果想要子類能夠訪問,就定義為protected)。
  • 繼承方式只影響外界通過子類對父類成員的訪問權(quán)限。
    • public繼承,父類成員的訪問權(quán)限全部保留至子類;
    • protected繼承,父類public成員的訪問權(quán)限在子類中降至protected;
    • private繼承,父類public、protected成員的訪問權(quán)限在子類中均降至private。

1.3 繼承中只選擇public繼承

關(guān)于繼承方式:

  • 一般而言,C++工程項(xiàng)目中只使用public繼承。
  • C++的派生語言只支持一種繼承方式(public繼承)。
  • protected和private繼承帶來的復(fù)雜性遠(yuǎn)大于實(shí)用性。

參考資料:

  • C++深度解析教程
  • 總結(jié)

    以上是生活随笔為你收集整理的C++中不同的继承方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。