一、c++類的訪問控制有三類:public,protected和private。
類訪問控制符
類成員可被哪些物件訪問
public
1、類的成員函式。2、類物件。3、友元。4、子類成員函式
protected
1、類的成員函式。2、友元。3、子類成員函式
private
1、類的成員函式。2、友元
二、c++類的繼承
繼承方式也有三種:public,protected和private。
繼承之後,基類成員的可訪問性會發生變化,如下表:
public繼承
基類public
protected
private
子類public
protected
不可見
protected繼承
基類public
protected
private
子類protected
protected
不可見
private繼承
基類public
protected
private
子類private
private
不可見
從上面可以看出,經過繼承後,基類的成員訪問性會發生改變,派生類對其的訪問仍然遵從類的訪問控制規則。有關三種繼承方式,派生類對基類成員的訪問說明,網上有很大網友寫了大量的文章,不過我覺得文字說明很容易把人繞暈,反而丟掉了其本質。我以為繼承沒有網友說的那麼麻煩,就是基類的可訪問性在派生類中發生了改變,然後,派生類再使用類訪問控制規則對其進行訪問即可。
值得注意的地方有兩個:
一、基類中的private成員在派生類中是不可見的,即無法通過派自己的成員函式去訪問,但可以通過繼承來的成員函式訪問。
二、private繼承,基類的public和protected成員都成為派生類中的private成員,這樣,如果對派生類再派生乙個子類,那麼,在派生的子類中,將無法直接通過該子類的成員函式訪問繼承來的成員;
三、派生類從基類中無法繼承的是哪些成員
派生類無法從基類中繼承的成員有三種:
1、建構函式和析構函式
2、賦值操作符(operator=()member)
3、友元
C 類的繼承和派生,訪問控制
c 中的繼承是物件導向的特點之一,其他兩個為封裝和多型。繼承是a is a b,而組合是a has a b.class a 派生類是具體的個性,積累是抽象的共性。乙個派生類有多個基類叫做多繼承,單個叫做單繼承。e.g.calss a public b 區別 域作用符 和 繼承 繼承 吸收 新增 改變...
C 類的繼承和派生,訪問控制
c 中的繼承是物件導向的特點之一,其他兩個為封裝和多型。繼承是a is a b,而組合是a has a b.class a 派生類是具體的個性,積累是抽象的共性。乙個派生類有多個基類叫做多繼承,單個叫做單繼承。e.g.calss a public b 區別 域作用符 和 繼承 繼承 吸收 新增 改變...
c 派生類的訪問控制許可權
派生類必須通過使用類派生列表,明確指出它是從哪個 哪些 基類繼承而來的。類派生列表的形式是 首先是乙個冒號,後面緊跟以逗號分隔的基類列表 可以多繼承,但一般不使用多繼承 其中每個基類前面可以有以下三種訪問說明符中的乙個 public,private,protectedd。c 語言中,基類必須將它的兩...