C 中類的成員函式作為另類的友元函式的問題,問題在下面的中,希望解釋的詳細點,謝謝了

時間 2021-08-30 10:38:27

1樓:匿名使用者

/*student不是一個類名嗎?怎麼成形參的引數型別了*/類也是一個型別啊 ,當然可以做為一個函式的形參型別啦/*這裡的c是student的物件吧,用在這裡的意思是要呼叫score吧?*/

嗯,為了讓teacher物件呼叫student物件的私有成員/*這個wc是student的物件,怎麼不能用c 為什麼要用wc*/這個問題實在是。。。

wc 是形參c的實參

可以這麼說吧, c指向的是wc指向的物件,相當於c=wc

2樓:匿名使用者

void modify_stu(student,float); student就是類名,類名就代表一種資料型別啊,宣告時只需確定形參型別,可以不要形參名,如friend void teacher::modify_stu(student,float);

函式實現時若函式內部需要形參的相關運算,則必須有形參名供使用,如void teacher::modify_stu(student c,float s)

wc在這裡是實參,呼叫函式時,編譯器會將實參傳遞給形參c。若直接用c,你的c是未定義的標示符啊

建議你看一哈函式的引數關係

3樓:左高原

所有的型別都可以做函式的引數;但要在一定的條件下才可以的;實參和形參都是要在具體呼叫某個具體的實體時起作用。

每一次引數的呼叫都意味著資料的變化,都要具體的,當是實體是一個類的時候就要具體到類裡的那一個成員。

4樓:匿名使用者

c是形參,wc是實參

c++ 一個類的成員函式作為另一個類的友元函式,為什麼錯了?

5樓:可以

worker(){}預設建構函式,其作用是把類的私有成員變數初始化為string類的預設值。

也就是空字串。

~worker(){}是解構函式,其作用是在超出物件的作用域後,將物件所佔的記憶體給釋放掉。

避免實體記憶體被用盡

6樓:匿名使用者

順序應該是這樣:

//class teacher;  //這裡編譯不成功,提示incomplete type 'teacher' named in nested name specifier

class student;//add

class teacher

;class student

7樓:遺失的迷惘

#include

using namespace std;

class student;

class teacher

;class student

順序應該是這樣子的

類a中一個成員函式宣告為類b的友元成員函式,在類b中怎麼呼叫這個友元成員函式,c++

8樓:

直接呼叫啊,友元函式不屬於類,所以不需要帶::

例子#include

#include

using namespace std;

class point

void getxy();

private:

double x, y;

};void point::getxy(){cout<<"("<

9樓:匿名使用者

b類要通過a類的物件來呼叫的

c 中如何將類中的成員函式的返回值傳給另類之中

du瓶邪 假設想在類a裡呼叫類b的函式int f x 兩種辦法 1 class a b 也就是說將b定義為a的父類,這樣你就可以自然的在a裡面用f x 了 2 class a int g x 也就是說可以在a裡面使用一個b的物件作為成員變數,這樣就可以用他的函式了. 齋傲雲 b類中的一個成員變數d要...

c 的友元函式問題,C 友原函式求教

這據說是vc的一個經典bug。和namespace也有關。只要含有using namespace std 就會提示友員函式沒有訪問私有成員的許可權。解決方法 去掉using namespace std 換成更小的名字空間。例如 含有 include 就要加上using std string 含有 i...

C 中類的成員函式定義成static與C中的static的函式有什麼不同

曾聽南 類的靜態成員函式不與任何物件相聯絡,它可以直接訪問類的靜態資料成員,而不能直接訪問類的普通資料成員 即非靜態資料成員 因為普通資料成員只有類的物件存在時才有意義。c中的靜態函式只在本檔案中有效。 血天藍海 如果是靜態函式 static 型別 函式名 形參 這樣的函式 它可以被 類名 函式名 ...