C類的公有繼承,基類的私有成員在派生類中不可見或不可訪問,這個不可見或不可訪問是什麼意思

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

1樓:可口可越

外部成員無法訪問內部私有成員。

2樓:寒鐵礦

從物理上講是複製過來了,在記憶體中確實有複製。但是從程式上看是被遮蔽了,不能直接呼叫。

3樓:淺綠淡淡

簡單的表達一下,父母跟子女。基類就是父母,子女就是派生類。基類的私有成員就好比是父母的私房錢,子女能夠繼承父母的樣貌(即公有成員),但是子女沒法使用父母的私房錢也不能知道有多少私房錢(即不可見或不可訪問),就是這麼個意思。

4樓:匿名使用者

公有繼承(public)將父類中的成員的可見性原搬不動的移到派生類裡,原來私有(private)依然保持私有,公有依然保持公有...

可見性是對類以外空間來說的

在公有繼承的情況下,基類成員在派生類中的訪問許可權保持不變? c++

5樓:匿名使用者

c++在公有繼承

的情況下,基類的public和protected成員的訪問屬性在派生類中不變,而基類版的private成員不權可訪問。其他外部使用者只能通過派生類的物件訪問繼承的public成員。另外,追加點分再採納吧,親。。

6樓:匿名使用者

嗯,公有繼承下,基類成員中公有和受保護型別的訪問許可權都不變,但基類的私有成員無論採用何種繼承方式,在子類中都將變得不可訪問。

7樓:匿名使用者

每次點高質量答題進來都只能看到提問標題,無法看到具體內容,沒辦法回答問題,也沒辦法看到有幾個答案,很多都是已經有最佳答案了還推薦出來。真的很心傷,管理可以解決一下這個問題嗎?不知道到哪反映啊。

8樓:節子不哭

不是的,基類的私有資料成員在派生類中不可見。

9樓:我是一小小魚蝶

基類訪問派生類?是不是寫反了 派生訪問基類吧,公有繼承下,public和protect公有跟保護可以訪問 private私有不能訪問

c++類的公有繼承,基類的私有成員在派生類中不可見或不可訪問,這個不可見或不可訪問是什麼意思?

10樓:3月21日晴

在c++語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承;從多個基類派生的繼承稱為多繼承。

方式如下:

公有繼承(public)、私有繼承(private)、保護繼承(protected)是常用的三種繼承方式。

1. 公有繼承(public)

公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。

2. 私有繼承(private)

私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。

3. 保護繼承(protected)

保護繼承的特點是基類的所有公有成員和保護成員都成為派生類的保護成員,並且只能被它的派生類成員函式或友元訪問,基類的私有成員仍然是私有的。

11樓:匿名使用者

公有繼承:

當類的繼承方式為公有繼承時,基類的公有成員和保護成員的訪問屬性在派生類中不變,而基類的私有成員不可直接訪問。也就是說基類的公有成員和保護成員被繼承到派生類中訪問屬性不變,仍作為派生類的公有成員和保護成員,派生類的其他成員可以直接訪問它們。在類族之外只能通過派生類的物件訪問從基類繼承的公有成員。

私有繼承:

當類的繼承方式為私有繼承時,基類中的公有成員和保護成員都以私有成員的身份出現在派生類中,而基類的私有成員在派生類中不可直接訪問。也就是說基類的公有成員和保護成員被繼承後作為派生類的私有成員,派生類的其他成員可以直接訪問它們,但是在類族外部通過派生類的物件無法直接訪問它們。無論是派生類的 成員還是通過派生類的物件,都無法直接訪問從基類繼承的私有成員。

保護繼承:

保護繼承中,基類的公有成員和保護成員都以保護成員的身份出現在派生類中,而基類的私有成員變數不可直接訪問。這樣,派生類的其他成員就可以直接訪問從基類繼承來的公有和保護成員,但在類的外部通過派生類的物件無法直接訪問它們,無論是派生類的成員還是派生類的物件都無法直接訪問基類的私有成員。

公有繼承:保持原狀

許可權:(1)派生類成員只能訪問基類中的 public/protected 成員;

(2)派生類的物件只能訪問基類中的public成員。(注意:派生類和派生類物件是不同的)

私有繼承:均變私有

許可權:(1)派生類成員也只能訪問基類中的 public/protected 成員;

(2)派生類的物件不能訪問基類中的任何的成員。

保護繼承:公有、保護變保護

許可權:(1)派生類的成員只能訪問基類中的 public/protected 成員;

(2)派生類的物件不能訪問基類中的任何的成員。

共性:1、私有最終都是私有,且不可訪問的;

2、這就像一個許可權大小包含、約束關係,仔細體會;

3、物件只有公有繼承,可以訪問 public 成員,其餘的都是不能訪問的;

4、三種繼承,成員訪問都是一樣的,因為相當於基類成員被已相應的許可權規則被copy到子類;

5、上面說的成員可以是:

(1)成員函式

(2)成員變數

c++問題,書上說,在公有繼承中,基類的私有成員在派生類中,無論是派生類的成員還是派生類的物件都無

12樓:匿名使用者

不對。派生類的成員無法訪問基類的私有函式。基類的私有函式只有基類自己能夠訪問。

從基類那裡繼承來的成員函式,其可以訪問基類的私有函式。但是這種訪問是基類在訪問自己。派生類直接訪問的是繼承來的成員函式(protected or public),不是基類的私有函式。

c++語言:在私有繼承中,基類的公有成員和保護成員成為派生類的私有成員,無法繼續繼承。

13樓:匿名使用者

例如:class a

;class b :private a

//可以訪問a

};class c : public b

;//錯誤,無法通過編譯,a私有,不可見};

C派生類繼承基類的所有成員,包括基類的私有成員

樓主你好。答案就是 繼承了,但是無法訪問。為什麼呢?我們用乙個例子來證明。比如我們有個基類 public class a 它有乙個私有成員name,和乙個保護的方法getname 然後我們寫個空類來繼承他 public class b a 好了,如果我們例項化這個類,並呼叫getname方法,並輸出...

C 中,類的私有資料成員在定義的時候不能進行初始化嗎

四舍 入 是的,c 中類的資料成員不管是不是私有的,都不能進行初始化。因為類就相當於一個資料的模板,是一種自定義組合的新資料型別,而不是一個變數。當程式宣告一個類的時候,事實上並沒有為程式申請儲存空間,只有用這個類定義一個類物件的時候,才申請空間。連空間都沒有,當然不能像定義變數一樣的初始化了。 翲...

關於c基類派生類的引用和指標,關於C 基類 派生類的引用和指標

1 首先回答第一個問題 用基類的指標指向派生類的物件,這樣做可以體現c 的重要特性 多型性。多型性其實也就是動態聯編。這樣做的好處是 當基類裡面定義了一個虛成員函式的時候,其派生類裡面定義了同名的函式可以實現覆蓋。你的基類指標指向那個物件,就呼叫那個物件的該方法。我舉個例子你應該就明白了 class...