關於友元類的問題 友元類存在多個物件

2025-03-23 03:45:26 字數 3115 閱讀 9072

1樓:普洛智應

這段**的實現有問題,有語法錯誤,才導致你有」b類物件會訪問哪個a的number呢?「這個疑問。正確的實現應該是。

#include

using namespace std;

class a

int number;

public://setnumber必須是公有成員。

void setnumber( int n 行仔)number = n;

friend class b;

class b

public://func 必須是公有成員。

int func( a aa,int b )/return number + b;//這句這樣是不行的逗帶轎。

return ;

int main()

a a[5];

b b[5];

for(int i = 0; i 《山肆 5; +i )/a[i].number = i;

a[i].setnumber(i);

for( int j = 0; j < 5; +j )b[j].func(a[j], j );

return 0;

2樓:魏瀟微笑

怪怪的,關係不明確。。。

3樓:玻璃麥田

友元可以訪問指定類中的所有成員,那訪問的時候必然是要指定物件的。

比如你在b中定義的func函式,不可能直接使用number,因為number不是static的,那這個number是哪個a類物件呢?這是需要指定的。你對func的定義本身就是不合法的。

例如本例中func定義的格式應該是這個樣子的int func(a& a,int b)

這樣的話,就不存在你說的不知道呼叫哪個a的number的問題了。

友元類中的基類物件

4樓:翡翠翔

1、友元函式可以訪問被宣告為友元類的所有成員,友元類和友元函式訪問許可權是一樣的,可以訪問被宣告為友元類的所有成員。

2、類裡面的未被宣告為友元類的類就是乙個一般的類,只是在類的裡面而已,訪問許可權不變,它只能訪問公有成員。

3、派生類的這個課本上有的,是protected和public

5樓:網友

1.全部。

2.當然只能訪問public成員。

3.公有繼承保護物件在派生類中變成public。

6樓:網友

1。友元(friend),言外之意,就是朋友,朋友當然可以看到家裡的每個人了,也可以和每個人說話。

2。當b沒有被宣告為友元的時候,b就存在於a的外部,所以b具有a的外部可見性。也就是說,僅有共有的可以訪問。

3。共有繼承的圖譜如下:

base public protected private

drived public protected --

4。私有繼承圖譜。

base public protected private

drived private private --

c++友元類的問題

7樓:網友

需要交叉書寫,將類裡面的成員函式只寫原型,包括建構函式的列表也不要,然後在兩個類的後面交錯實現各個函式,原則是該函式用到了另外乙個類的成員函式或者資料,此時一定該函式體可見,當然,如果沒用到則還可以在類裡實現。

還有,如果有友元的物件成員,必須在後面,前面加上類的前向說明。

8樓:網友

class b;

class a

class b

不行是因為沒宣告,只要在引用前宣告就行了,後面在進行定義。

9樓:網友

class b裡面 應該宣告為publicb();這個不需要寫,需要的話應該這樣 b(){還有b bb();是不需要括號的。

正確結果。#include

using namespace std;

class a

private:

int a;

class b

void printa(a & c)

int main()

如何定義友元類

10樓:網友

一句兩句說不清除,看下篇文章,應該能解決問題,不是太長。

是關於友元類的。

友元類問題。

11樓:yan_桐葉杏香

你定義了crect類的物件,這個物件在初始化的時候找不到合適引數的建構函式。

類在沒有定義任何建構函式的時候,系統才會預設產生建構函式,一旦定義了任何形式的建構函式,系統就不會在產生預設的建構函式了。該錯誤是所找不到正確的無引數的建構函式。

只需要寫乙個空的建構函式,就可以解決問題。

在你的crect類里加上crect(){就行了。

c++關於友元類的問題。。

12樓:網友

"setdata',getnext' 左邊必須要是乙個型別或者結構"

/ p2是指標啊, p2->getnext();

/ p2是指標啊, p2->setdata();

一共5個地方要改, 自己找找吧, 錯誤提示很明顯了吧。

13樓:網友

setdata()函式前面的型別是指標,如果要使用指標的話,需要使用操作符->(而不是。()

修改成類似下面這樣就可以了:

node *p2;

p2=head->getnext();

int s=p2->getdata();

初你好運~~

c++友元類的小問題

14樓:網友

每個類的visitboygirl函式前加關鍵字 friend ,表示此函式為友元函式。元函式是指某些雖然不是類成員卻能夠訪問類的所有成員的函式。。類授予它的友元特別的訪問權。

15樓:

類中宣告友元函式vsitboygirl時前面加上friend

求友友支援 關於愛情的問題

如果放不下,就勇敢的去面對,敢與不敢的距離是很大的。如果你不說一點機會也沒有,不要因為怕打擊,不要因為面子而算了。愛情是自己爭取來的,勇敢點。我相信你。從某些方面慢慢接近,並且要先了解她是否對你有意思,至少要表達這麼多年的喜歡,或者過幾天就約她,或者很多人一起去玩,然後你就跟她聊天。你們平時聯絡得多...

類的友員是函式時,它們可以定義不同形式的類屬引數 是什麼意思啊

include using namespace std template class a template void printa a a,p m 說明 a是類别範本 printa是函式模板 printa是a的友員,但是printa是template,而a是template 所以說類别範本的友員是函...

請教各位花友,我這個蘭花怎麼長了個黃色的類似葉子的

發一個 看看比較好,是不是變異了,蘭花很好養,放室內明亮處就可以,乾透及時澆水就可以啊,見幹見溼比較好 長了個黃色的類似葉子的花苞嗎?那麼發個 過來看看 沒有 很難猜,不知道是什麼 我的這蘭花是什麼,怎麼開花開葉子了 你難道沒有仔細看看它?這個明顯是別的植物發芽長出來了 葉片那麼清楚,有點像茶葉,或...