1樓:物理公司的
私有基類的公用成員和保護成員在私有派生類中
的訪問屬性相當於派生類中的私有成員,即派生類的成員函式能訪問它們,而在派生類外不能訪問它們。私有基類的私有成員在派生類中稱為不可訪問的成員,只有
基類的成員函式可以引用它們,一個基類成員在基類中的訪問屬性和在私有派生類中的訪問屬性可能是不相同的。私有基類的成員在私有派生類中的訪問屬性見下
表:私有基類中的成員 在私有派生類中的訪問屬性
私有成員 不可訪問
公用成員 私有
保護成員 私有
2樓:匿名使用者
私有繼承用得比較少,因為其他的面嚮物件語言不一定支援私有繼承,所以都儘量避免使用私有繼承,它的用途主要是用來定義實現或者控制基類的介面。
比如說你想通過某個類的物件來實現功能,但是不想讓外部知道這個類的存在,那就可以用私有繼承。(正常情況下一般是將這個類定義成成員物件,但是使用私有繼承在語法上稍微會有一點放便)
c++ 在什麼情況下需使用私有繼承
3樓:
在做一些類做介面方面的轉換就可以用私有繼承,子類物件只能通過子類的公有函式去訪問父類,這樣就有效的遮蔽父類的介面。
4樓:志遠
不希望客戶程式使用任何其父類的方法,很少這麼用,一般是重構的時候,為了防止客戶程式及其派生類在接觸到老舊程式的父類方法,會從老舊類私有派生新的類,並將新的類作為**介面釋出。
5樓:智精星
以後基本上使用子類了吧
c++中一個關於私有繼承的問題
6樓:匿名使用者
//在私有派生中,基類的所有成員在派生類中均為私有的。所以,在//派生類外不可以直接使用基類繼承過來的成員,而在派生類的//內部,對於基類繼承過來的成員,也只可直接使用其保護和公有//屬性的成員。
//以下改進僅供參考
#include "iostream.h"
class ca
int readvalue()
};class cb:private ca
int readtotal()
int readvalue1()
}; class cc:private cbint readcount()
int readtotal1()
int readvalue2()
}; int main( )
7樓:匿名使用者
呵呵,看了樓上的,~~~
不過我可以給你一個提示,私有繼承時,物件不能訪問基類的任何成員,但是,可以用間接利用成員函式來訪問基類成員
8樓:
很簡單啊,建立n多介面,及是:get()返回一個私有成員,
c++語言:在私有繼承中,基類的公有成員和保護成員成為派生類的私有成員,無法繼續繼承。
9樓:匿名使用者
例如:class a
;class b :private a
//可以訪問a
};class c : public b
;//錯誤,無法通過編譯,a私有,不可見};
c++中,比較類的三種繼承方式:共有繼承、受保護繼承、私有繼承之間的區別。
10樓:匿名使用者
在三種不同方式的繼承下,派生類對原來基類中的成員訪問的方式也不一樣,具版體如下:
1>公有繼承中:權
(1)基類的共有成員就相當於是派生類的公有成員,也就是說派生類可以像訪問自身公有成員一樣訪問從基類繼承的公有成員。
(2)基類的保護成員就相當於是派生類的保護成員,即,派生類可以像訪問自身的保護成員一樣,訪問基類的保護成員。
(3)對於基類的私有成員,派生類內部成員是無法直接訪問的,派生類使用者也無法通過派生類物件直接訪問。
2>受保護繼承中:
(1)基類的公有成員和保護成員都相當於派生類的保護成員,派生類可以通過自身的成員函式或其子類的成員函式訪問它們。
(2)對於基類的私有成員,無論派生類內部成員或派生類的物件都無法直接訪問。
3>私有繼承中:
(1)基類公有成員和受保護成員都相當於派生類的私有成員,派生類只能通過自身的成員函式訪問他們。
(2)對於基類的私有成員,無論派生類內部成員或派生類的物件都無法直接訪問。
我只給你寫了理論的區別比較,例子舉起來太麻煩,如果你覺得有必要通過例子來說明的話,我可以寫給你,你也可以拿一些不懂得問題問我。
簡單c語言問題,求教,簡單C語言問題,求教
的優先順序比 高 c a b 2相當於c a b 2 c a 1 c 00000011 單目運算子 算術運算子 移位運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子 逗號運算子 單目運算子 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算...
關於C語言的問題,求教,一個關於C語言的問題,求教!!
冰雨vs冰霜 a b 是賦值 a b 是等號 這是新手長犯錯誤 c語言中經常犯的毛病!初學者必看!c 語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,...
簡單C語言問題
m為行,n為列 一 二維陣列的定義 二維陣列的定義格式為 型別說明符 陣列名 常量表示式1 常量表示式2 其中常量表示式1表示第一維下標的長度,說明陣列的行數,常量表示式2 表示第二維下標的長度,說明陣列的列數。例如 int a 3 4 該宣告定義了一個3行4列的二維陣列,陣列名為a,該陣列的下標變...