C 中,基類中的private跟protected成員許可權

2021-03-27 04:28:08 字數 2882 閱讀 6641

1樓:匿名使用者

protected 的主要用途是在類的繼承中。

父類中protected的成員在子類中可見(可以直接訪問)但是父類的private在子類中是不可見的。

另外你的「private只能是基類public來訪問」是有問題的,這麼表達不清楚,你的意思是不是用public的函式來訪問private的成員?

2樓:匿名使用者

public成員可以在基類訪問

也可以在子類訪問,還可以使用基類和子類的物件訪問。

protect成員可以在基類訪問也可以在子類訪問,不能使用物件訪問。

private成員只能在基類中訪問,不能再子類訪問,不能使用物件訪問。

以上基於public派生,否則基類的public成員在子類如果不再是public成員,則不能使用子類的物件訪問。

個人一個經驗是,在基類訪問、在子類訪問、使用物件訪問,新手需要很久才能熟練深刻區分這幾個概念。

3樓:匿名使用者

加上這兩句話,這些煩惱就全解決了!

#define protected public

#define private public

c++類中public,private,protected的用法與區別。

4樓:匿名使用者

protected型別的訪問機制與private一樣

在基類的派生類中,可以直接訪問繼承而來的protected成員,但是不能訪問private限制的成員.所以在派生類中,可以訪問基類繼承而來的public和proected兩種型別的成員.

在public公有派生下,繼承而來的成員訪問許可權不變.protected派生下,public和protected都變成protected,private派生下,所有的繼承下來都是private了

5樓:巴霞姝雍滌

在本類中,protected與private是相同的,但protected可以被繼承,而private卻不行。

只有公有成員才能在類的外部訪問。如classa;aca;ca.a

//error

ca.b

//ok

ca.c

//error

cb.c

//error。雖然c也是b的成員,但c在被繼承的時候變成私有或者受保護的成員了。

c++類的protected與private有何區別

6樓:兄弟連教育

這兩個是訪問類中成員許可權的限制符.在類外如果想使用類中的成員,只能直接使用public型別的,protected和private都是不能訪問的,對於類外使用而言,這兩個是完全相同的.

但是在基類的派生類中,可以直接訪問繼承而來的protected成員,但是不能訪問private限制的成員.所以在派生類中,可以訪問基類繼承而來的public和proected兩種型別的成員.在public公有派生下,繼承而來的成員訪問許可權不變.

protected派生下,public和protected都變成protected,private派生下,所有的繼承下來都是private了.

c++裡面的protect和public、private有什麼區別?

7樓:和睦空大

public修飾的成員變數

在程式的任何地方都可以被訪問,就是公共變數的意思,不需要通過成員專函式屬就可以由類的例項直接訪問

private修飾的成員變數

只有類內可直接訪問,私有的,類的例項要通過成員函式才可以訪問,這個可以起到資訊隱藏

protected是受保護變數

類內和子類可直接訪問,也就是說,基類中有protected成員,子類繼承於基類,那麼也可以訪問基類的protected成員,要是基類是private成員,則對於子類也是隱藏的,不可訪問

8樓:斯斯傑

public是這個程式的每一處都能訪問,無論是在本類內還本類外

protected則是在本類內和友類,子類中才能訪問

private則只能在本類內才能訪問,其它地方則不能

c++中protected和private的區別在**?

9樓:中冷眼

private成員只能被本類成員或者友元訪問。

protected成員除了以上可被訪問外,只有派生類(子類)可以訪問

10樓:匿名使用者

private成員只能被本類或者友類(friend class)的例項訪問。

protected成員除了以上可被訪問外,還可以被派生類例項(子類)訪問

11樓:牛牛a哥

private和protected繼承:派生類中成員函式可以訪問基類中的保護成員,但是不能訪問基類的私有成員;

12樓:匿名使用者

如果繼承的話,protected和private沒有區別,該類的客戶不能呼叫該欄位下的任何東西。

如果發生繼承。則子類可以使用父類的protected成員。不能使用private。

c++中public、private和protected訪問屬性的區別

13樓:雲哥

在本類中,protected與private是相同的,但protected可以被繼承,而private卻不行。只有公有成員才能在類的外部訪問。版如class a;a ca;ca.

a //error

ca.b // ok

ca.c //error

cb.c //error。雖權然c也是b的成員,但c在被繼承的時候變成私有或者受保護的成員了。

c中如何呼叫基類的虛擬函式,c 中 解構函式中可以呼叫虛擬函式麼

下面是例子 include using namespace std class a a virtual void f 一個類的物件中是沒有關於普通成員函式的指標的slot,只有成員變數還有虛表指標,類的成員函式的 定義在pe檔案的 區,所以從程式載入時,就已經分配好了記憶體用於存放這些 執行時所需要...

C 中的派生類,可以不定義物件直接呼叫基類的成員和呼叫自己的成員函式嘛

如果你想呼叫的來函式是基源類的靜態成員函bai 數,不定義派生類對 du象是zhi可以呼叫的,格式 base fun 因為靜態dao成員並不是類的某個物件的成員,而是所有該類的物件所共享的。通過類名就可以直接訪問。如果你想呼叫的不是靜態函式,不定義派生類物件是不可能的。因為你呼叫的成員函式可能會訪問...

c基類中的成員函式的引數是派生類怎麼辦

先宣告派生類,將成員函式引數設為派生類的引用 include using namespace std class b class a int main 不知道你是不是要問這個 那還放在基類搞什麼,不如弄成虛擬函式。c 中派生類如何使用基類中的資料成員 如果你是派生類例項,這個結果是正確的,派生後會覆...