C 中繼承基類和派生類的關係,比如繼承方式,子類是不是至少擁有全部父類成員函式

時間 2021-08-11 17:12:20

1樓:

子類是擁有全部類的成員函式,但是訪問的許可權就看父類的訪問修飾符(public,protected,private),子類要想訪問父類的資料成員,該資料的訪問許可權必須是public或者protected,public訪問 許可權最低,protected只能是自身類的成員函式,友元類與子類訪問,private只能是能是自身類與友元類成員函式的訪問

2樓:匿名使用者

是的,不過如果是私有繼承的話,那麼子類不能呼叫父類的成員函式。

3樓:歡釋心

子類肯定擁有全部基類成員。

注意:擁有並不等於可以訪問。

比如:子類繼承了父類的私有成員,但是卻永遠無法進行直接訪問。

4樓:匿名使用者

子類有父類全部屬性

子類可以訪問父類的公有和保護函式和屬性,不能訪問父類的私有函式和屬性

繼承還有很多學問,先搞清楚這些基本的東西吧

5樓:

私有繼承:

父類私有的在子類不擁有。訪問可以通過父類的public型別函式。

父類公有的和保護的成為子類私有的。

(關於保護指的是類以外不能訪問、)

公有繼承:

父類私有的在子類不擁有。訪問也可以通過父類的public型別函式。

父類公有的依舊是子類公有的。父類保護的成為子類公有的。

保護繼承:

父類私有的在子類不擁有。訪問也可以通過父類的public型別函式。

父類公有的成為子類保護的。父類保護的依舊是子類保護的。

有關c++類繼承的問題:如果子類中沒有再次宣告父類的成員函式,那麼父類中的這個函式可以直接在子類用嗎

6樓:匿名使用者

繼承關係是一種 ..is..a 什麼的關係 比如說class animal{}

class bull:public animal{}就屬於這樣的關係 至於能不能使用父類的成員函式 就看這個成員函式在父類中是否是prviate了 如果是 就不能使用 反之就能

7樓:

只要你在父類宣告的這個函式不是private的,子類就可以不用宣告直接用。

但是子類的物件的話只能呼叫父類中public的,protected和private的都不能呼叫

c++中子類可以直接呼叫父類實現的函式嗎

8樓:匿名使用者

子類能不能呼叫父類的函式與繼承方式有關,c++有三種繼承方式:

1.公用繼承(public):對於專基類成員在派生類中屬保持自己原來的的訪問級別,原來是public(private/ protected),在派生類中也還是public(private/protected)。

2.受保護繼承(protected):基類中的public成員和protected成員在派生類中為protected,private成員型別不變。

3.私有繼承(private):積累的所有成員在派生類中都是private的。

類中的成員有三種訪問型別:

1.public成員在呼叫類的函式裡可以使用。

2.private成員只能在類的組成部分內使用,如類的定義體,類的成員函式的定義體裡。

2.protected成員可以看做是前兩者的混合:他像private成員一樣不能被類的使用者訪問,像public成員一樣可被該類的派生類訪問。

c 基類指標指向派生類時可呼叫派生類中定義的函式嗎

這種現象在c free中執行沒有錯誤,請問是怎麼回事?重新定義指是在基類指標指向派生類,存的是派生類的地址,所以你強制轉換一下指標型別,基類 灰晞鬱 你說的 派生類中定義的函式 我做兩種理解 第一種 派生類中自己寫的 基類中沒有的函式。這種函式是基類的指標無法訪問的,必須把基類的指標通過強制型別轉換...

在c 中為什麼基類不預設構造時候派生類要呼叫基類建構函式進行初始化

派生類的建構函式必須呼叫基類的建構函式,這是c 的內部規定。這樣派生類的實現可以專注於自己本身,不用考慮基類的事。而且,在實際使用時,你根本就不知道大部分基類的實現細節,你只要做好自己派生類的事就行了。比如你用vc,直接建立一個對話方塊類,你不需要知道對話方塊類是怎麼生成並顯示的,你只要寫你額外需要...

C 中,為什麼派生類的建構函式如果沒有提供基類的初始化器

a774888179巨蟹 c 中成員變數的初始化是在進入建構函式體之前的,如果你需要初始化一個派生類物件,先會呼叫基類的建構函式,然後為初始化列表中的派生類成員變數進行初始化,如果你的部分或全部的成員變數選擇在函式體內賦值,那麼編譯器會先為這些成員變數進行預設的初始化 呼叫其預設建構函式 然後使用c...