【b站黑马程序员C++视频学习笔记-继承方式】
生活随笔
收集整理的這篇文章主要介紹了
【b站黑马程序员C++视频学习笔记-继承方式】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
繼承方式
有以下三種繼承方式:
- 公共繼承public
- 保護繼承protected
- 私有繼承private
繼承之后訪問權限如下:
| 父類A | public | protected | private |
| B:public A | public | protected | 不可訪問 |
| C:protected A | protected | protected | 不可訪問 |
| D:private A | private | private | 不可訪問 |
父類的私有屬性,子類繼承之后均不可以訪問
#include<iostream> using namespace std;class Base1 { public:int mA; protected:int mB; private:int mC; };//公有繼承 class Son1 :public Base1 { public:void func() {mA = 10;//父類中的公共權限成員 到子類中依然是公共權限mB = 10;//父類中的保護權限成員 到子類中依然是保護權限//mC = 100;//錯誤,父類中的私有權限成員,子類不能訪問} };void test01() {Son1 s1;s1.mA = 100;//類外可以訪問公有權限//s1.mB = 100;//錯誤,類外不能訪問保護權限 }//保護繼承 class Base2 { public:int mA; protected:int mB; private:int mC; };class Son2 :protected Base2 { public:void func() {mA = 100;//父類中的公共權限成員 到子類中變為保護權限mB = 100;//父類中的保護權限成員 到子類中變為保護權限//mC = 100;//錯誤,父類中的私有權限成員,子類不能訪問} };void test02() {Son2 s2;//s2.mA = 100;//錯誤,在Son2中mA變為保護權限,類外不能訪問//s1.mB = 100;//錯誤,類外不能訪問保護權限 }//私有繼承 class Base3 { public:int mA; protected:int mB; private:int mC; };class Son3 :private Base3 { public:void func() {mA = 100;//父類中的公共權限成員 到子類中變為私有權限mB = 100;//父類中的保護權限成員 到子類中變為私有權限//mC = 100;//錯誤,父類中的私有權限成員,子類不能訪問} };class GrandSon3 :public Son3//公共繼承 {//mA = 100;//錯誤,到了Son3中,mA變為私有成員,父類中的私有權限成員,子類不能訪問//mB = 100;//錯誤,到了Son3中,mB變為私有成員,父類中的私有權限成員,子類不能訪問 };void test03() {Son3 s3;//s3.mA = 100;//錯誤,在Son2中mA變為私有權限,類外不能訪問//s3.mB = 100;//錯誤,在Son2中mB變為私有權限,類外不能訪問 }int main() {system("pause");return 0; }總結
以上是生活随笔為你收集整理的【b站黑马程序员C++视频学习笔记-继承方式】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能基础——什么是人工智能
- 下一篇: c++中的有符号数与无符号数一起运算