1樓:3月21日晴
在c++語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承;從多個基類派生的繼承稱為多繼承。
方式如下:
公有繼承(public)、私有繼承(private)、保護繼承(protected)是常用的三種繼承方式。
1. 公有繼承(public)
公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。
2. 私有繼承(private)
私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。
3. 保護繼承(protected)
保護繼承的特點是基類的所有公有成員和保護成員都成為派生類的保護成員,並且只能被它的派生類成員函式或友元訪問,基類的私有成員仍然是私有的。
2樓:匿名使用者
公有繼承:
當類的繼承方式為公有繼承時,基類的公有成員和保護成員的訪問屬性在派生類中不變,而基類的私有成員不可直接訪問。也就是說基類的公有成員和保護成員被繼承到派生類中訪問屬性不變,仍作為派生類的公有成員和保護成員,派生類的其他成員可以直接訪問它們。在類族之外只能通過派生類的物件訪問從基類繼承的公有成員。
私有繼承:
當類的繼承方式為私有繼承時,基類中的公有成員和保護成員都以私有成員的身份出現在派生類中,而基類的私有成員在派生類中不可直接訪問。也就是說基類的公有成員和保護成員被繼承後作為派生類的私有成員,派生類的其他成員可以直接訪問它們,但是在類族外部通過派生類的物件無法直接訪問它們。無論是派生類的 成員還是通過派生類的物件,都無法直接訪問從基類繼承的私有成員。
保護繼承:
保護繼承中,基類的公有成員和保護成員都以保護成員的身份出現在派生類中,而基類的私有成員變數不可直接訪問。這樣,派生類的其他成員就可以直接訪問從基類繼承來的公有和保護成員,但在類的外部通過派生類的物件無法直接訪問它們,無論是派生類的成員還是派生類的物件都無法直接訪問基類的私有成員。
公有繼承:保持原狀
許可權:(1)派生類成員只能訪問基類中的 public/protected 成員;
(2)派生類的物件只能訪問基類中的public成員。(注意:派生類和派生類物件是不同的)
私有繼承:均變私有
許可權:(1)派生類成員也只能訪問基類中的 public/protected 成員;
(2)派生類的物件不能訪問基類中的任何的成員。
保護繼承:公有、保護變保護
許可權:(1)派生類的成員只能訪問基類中的 public/protected 成員;
(2)派生類的物件不能訪問基類中的任何的成員。
共性:1、私有最終都是私有,且不可訪問的;
2、這就像一個許可權大小包含、約束關係,仔細體會;
3、物件只有公有繼承,可以訪問 public 成員,其餘的都是不能訪問的;
4、三種繼承,成員訪問都是一樣的,因為相當於基類成員被已相應的許可權規則被copy到子類;
5、上面說的成員可以是:
(1)成員函式
(2)成員變數
請問在c++中基類的公有成員能不能訪問派生類的私有成員????
3樓:匿名使用者
應該是不能訪問到的,語法上不成立
4樓:匿名使用者
當然不能,父類被子類繼承,父類並不知道哪些類繼承了他,但是子類可以訪問父類的
專public、protected 成員,當然如果屬父類的public、protected 虛擬函式,在子類中覆蓋(override),可以用父類指標呼叫子類函式,因為覆蓋實際上是用子類的函式地址(指標)動態替換了父類函式地址,所謂多型。
下面是偽**
//父類
class a
};//子類
class b:a
};main()
5樓:郯北鮮于悅宜
不能基類的私有成員在派生程序中仍然是基類的私有成員,不能為派生類所援用
c 中可不可以在類中訪問另類的私有成員
a羅網天下 c 中可以在一個類中訪問另一個類的私有成員,通過定義友元類即可實現。class node public node int data 0 mdata data mpnext null private int mdata node mpnext friend class link 友元類本質...
C類的問題基類成員函式可以呼叫子類的成員函式嗎
父類 子類 這種關係,本來設計就是把 具備共性的東西放在父類裡,不具備共性的放在子類裡.嚴格來說,父類是不能去呼叫某個子類特有的介面的.你這樣瞎搞 就破壞了這種構架,只能讓程式紊亂.所以你可以這樣子 在父類立面設計一個通用介面,然後對這個通用介面下指令,子類收到這個訊息,大多不處理,只有那個特殊的子...
C 中繼承基類和派生類的關係,比如繼承方式,子類是不是至少擁有全部父類成員函式
子類是擁有全部類的成員函式,但是訪問的許可權就看父類的訪問修飾符 public,protected,private 子類要想訪問父類的資料成員,該資料的訪問許可權必須是public或者protected,public訪問 許可權最低,protected只能是自身類的成員函式,友元類與子類訪問,pri...