c 友元關係不能被繼承???

2025-01-05 22:35:18 字數 2706 閱讀 8248

1樓:網友

是的,不能被繼承。

友元能夠是個函式,該函式被稱為友元函式;友元也能夠是個類,該類被稱為友元類。

在c++中,自定義函式可以充當友元,友元只是能訪問指定類的私有和保護成員的自定義函式,不是被指定類的成員,自然不能繼承。

使用友元類時注意:

1) 友元關係不能被繼承。

2) 友元關係是單向的,不具有交換性。若類b是類a的友元,類a不一定是類b的友元,要看在類中是否有相應的宣告。

3) 友元關係不具有傳遞性。若類b是類a的友元,類c是b的友元,類c不一定是類a的友元,同樣要看類中是否有相應的申明。

注意事項:1.友元可以訪問類的私有成員。

2.只能出現在類定義內部,友元宣告可以在類中的任何地方,一般放在類定義的開始或結尾。

3.友元可以是普通的非成員函式,或前面定義的其他類的成員函式,或整個類。

4.類必須將過載函式集中每乙個希望設為友元的函式都宣告為友元。

5.友元關係不能繼承,基類的友元對派生類的成員沒有特殊的訪問許可權。如果基類被授予友元關係,則只有基類具有特殊的訪問許可權。該基類的派生類不能訪問授予友元關係的類。

2樓:在梯田捕蝶的秋海棠

這個問題很簡單,樓主最好按照c++ primer講的來學,裡面講的都是c++的標準,而你說的可以執行正確,是因為編譯器的原因,每種編譯器在對c++的標準支援之後或多或少還有些擴充套件功能,如果**中用到了這些功能,**的可移植性會受到或多或少的阻礙,舉個例子:

在中,是允許這樣使用主函式的:

void main()

而在linux下,用g++編譯器這樣就會報錯,因為標準的c++要求main函式必須返回整型資料:

int main()

return 0;

這樣才能通過編譯。

所以樓主儘量按照c++ primer講的來學。

3樓:網友

我在vs 2005和bcb6 下做的測試可以證明書上寫錯了,也許按iso標準它是對的,但編譯器並不按它所講的來實現。這個i從基類base下來之後,到了d1仍然為protected。如果在base中把它定義為private,到了d1它仍然可以通過來訪問。

但顯然frnd不是d1的友元,所以它不可以訪問j。

在《c++大學教程》中是這麼說的:基類的protected成員,經過public繼承到派生類之後,仍為proteced,可以直接由任何非static成員函式、友元函式訪問。

4樓:網友

友元類能否被繼承還是得看修改符吧,如果是public或protected就可以繼承,如果是private就不能繼承,c++預設是private型別,所以你的友元類沒加修改符,預設是私有的,無法繼承。

5樓:網友

c++primer上明確表示c++標準不允許友元繼承。

類與類之間的友元關係可以繼承嗎? 友元函式是類的成員函式嗎?

6樓:無情風

類的友元關係是不可以繼承的。。。友元函式不是類的成員函式。。給錯誤答案為滿意答案會害了後面的來查這個問題的人的。

7樓:騎士

在c++教材第4版中,第160頁,明確說,友元函式不是本類的成員函式,但是在它的函式體中可以通過物件訪問類的私有和保護成員。

8樓:

類的友元關係是可以繼承的,類的友元為類提供了乙個介面,可以通過介面訪問類的友元函式。友元函式可以是類的成員函式。

求助!!!c++中為什麼派生類不能繼承其基類的友元函式?

9樓:網友

你好,你可以這樣理解:父親的朋友,他不一定是孩子的朋友,除非孩子也把它申明友元。

c++中關於友類的繼承問題

10樓:網友

友元不能繼承,只是相互之間的關係,打個比方說,某人父母的朋友也是他的朋友?!

11樓:網友

base_friend 不是 derived 的friend,但是還是有點特殊,可以看作比普通關係好,比friend關係差。

derived從它父類繼承過來的私有和保護成員可以被base_friend訪問,只有它自己以及子類的私有成員不能被base_friend訪問。即繼承不會改變友元的訪問範圍——友元關係不繼承但父類成員不受影響。可以看下面這個例子。

class b

class d:public b

class f

int main()

c++ 在基類中不能被派生類繼承的成員函式有哪兩種

12樓:網友

建構函式、拷貝建構函式、賦值函式、解構函式。

友元函式也不能被繼承,但由於友元不是成員函式,故在這裡說明下。

13樓:網友

私有函式(private), 建構函式,都不能被繼承,解構函式也不可以繼承 ,和虛擬函式搞混了。

14樓:匿名使用者

建構函式(constructor)、解構函式(destructor)和友元(friends)。

c++關於虛繼承和友元的問題

15樓:sibu楠楠雙魚

參考 只想讓你偶爾的時候還會想起我,偶爾想起那個曾經那麼深深愛過你的人,

我男朋友懷疑我跟Q友有關係!他借給我五萬元錢叫我還己經還給他!錢收了又回來找我。我該怎麼辦

鐵公雞,以後假設你們結婚了,他也會懷疑你,分手吧,以上為個人感覺 噢,就是找機會讓你還錢的 笨.男朋友的錢還要借要還嗎?以後結婚了還不都是你的.怕不是男朋友吧.錢也還了分了算了,從此背道而馳 好朋友借我五萬元錢,說好十天還我,現己過了二個月了,每次問他要,他總是找各種理由推遲,就是不還,我 這種人很...

和男生友達以上戀人未滿但是發生了關係不知道該怎麼繼續的感覺怎麼辦呢

沒看懂?日本的朋友?那天我問一個女生她和另一個男生什麼關係她說友達以上戀人未滿什麼意思?50 bai意義出自日文 友達以上du 戀人未満 表zhi示兩人關係在朋友關dao 曖昧關係,超越了普通朋友,但又未確認男女關係的意思。男閨蜜!對於這個,有兩種相反的論點,一種是,如果兩人有曖昧,產生了男女之間的...

c語言兩張100紙幣,換成10元,5元和1元紙幣每樣至少一張

include include void main void 100元換成10元5元1元紙幣,每種至少一張,一共多少換法 81種換法 一 每種至少一張,實際應為至少10元 5元各一張,專1元的5張。共20元,剩下的屬80元可任意分配。二,80元的零錢可以如下 8張10元。1種 7張10元,5元的2 ...