类的继承私有成员问题
生活随笔
收集整理的這篇文章主要介紹了
类的继承私有成员问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類的繼承過程分為公有繼承,保護繼承和私有繼承,不管哪一種繼承,基類的私有成員在派生類成員中都是不可見的,但是基類的私有成員是否被派生類繼承了呢?通過下面實驗就可以知道。
代碼例如以下:
#include <iostream> using namespace std; class Base { public: Base():a(5){} private:virtual void f() { cout << "Base::f" << endl; }int a;}; class Derive : public Base{}; void main() {Derive d;int** pVtab = (int**)&d;Fun pFun = (Fun)pVtab[0][0];cout<<sizeof(Base)<<sizeof(Derive)<<endl;pFun();cout<<(int)pVtab[1]<<endl;return ; }監視窗體例如以下圖:
執行結果例如以下:
由以上可知,基類的私有成員被派生類繼承了,而類的對象空間沒有響應的常規函數成員的分布。同一時候依據類的對象的內存空間的分布。我們能夠在類外訪問類的私有成員。
轉載于:https://www.cnblogs.com/gcczhongduan/p/5116515.html
總結
以上是生活随笔為你收集整理的类的继承私有成员问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 开源项目android-
- 下一篇: 【转载】Kafka介绍及升级经验分享