1樓:網友
c++中最主要的特點就是實現對資料的封裝性。 但是有的時候我們需要呼叫其他物件中的某些資料成員,當然是私有成員。 但是c++中定義了本類的資料成員只有本類的成員函式能夠呼叫。
所以就出現了有元函式 ,就像你的臥室。只有你的家人(私有資料)或者你希望你的好朋友(有元函式)才能訪問一樣。
我的理解就是這樣。
2樓:網友
知道特點就知道了。
1)必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函式原型,友元函式的說明可以出現在類的任何地方,包括在private和public部分;
2)注意友元函式不是類的成員函式,所以友元函式的實現和普通函式一樣,在實現時不用"::指示屬於哪個類,只有成員函式才使用"::作用域符號;
3)友元函式不能直接訪問類的成員,只能訪問物件成員,4)友元函式可以訪問物件的私有成員,但普通函式不行;
5)呼叫友元函式時,在實際引數中需要指出要訪問的物件,6)類與類之間的友元關係不能繼承。
3樓:匿名使用者
網上一搜到處都是。
c++ 類的友元函式必須在類的作用域以外被定義 為什麼是不對的?
4樓:可以
worker(){預設構造函bai數,其作用是把類du的私有成員變數zhi初始化為string類的預設dao值。
也就是空字元版串。
worker(){是解構函式權,其作用是在超出物件的作用域後,將物件所佔的記憶體給釋放掉。
避免實體記憶體被用盡。
5樓:網友
類的友元函式,其bai實不是類的成員函式du,因此需zhi要在類外定義dao
class a
void fun()
a裡面版的就是類的作用域,外權。
面定義的fun就不是類a的作用域了。
6樓:匿名使用者
類的作用域之外。
復的意思應制該是 關於域作用符的問題「
bai::" 。一du般情況下 :
class a
當實現的時zhi候 ,在類的作用域dao內指的是需要用「::來限定它是這個類的成員 。
int a::add(int x,int y)而對於友元函式 ,它不是類的成員函式 ,在定義的時候不需要使用域作用符。
int sum(int x,int y)
友元函式可以向成員函式一樣訪問類的私有成員。
7樓:網友
友元在類裡面宣告定義一起寫完全沒問題,只不過就算寫定義了,這個友元也不是這個類的。
c++中,判斷題:可以把乙個一般函式說明為某類的友元函式,也可以將某類的成員函式說明為另類的友元函式
8樓:
1)構造析構除外!這兩個函式,不能成為友元,其他成員函式可以成為另乙個類的友元。
2)啥叫一般函式,這個概念不嚴密,外部函式吧!或者全域性函式(外部函式,和外部靜態函式?
這種不是某個類的成員函式的函式,可以成為類的友元,這個說法是正確的!
這種友元,可以類內說明,類外定義,也可以直接在,類內部定義,但是本質上,還是外部函式,不是類的成員,因為可以看成類的介面,所以可以在類內定義。
3)類也可以成為類的友元,乙個類成為另乙個類的友元,該類的所有函式,都可以看成那乙個類的友元,可以訪問那個類的一切成員!但從語法上講,這些函式不是友元,類才是!這種友元關係是單向的!
4)乙個函式可以是幾個類的友元,乙個類也可以成為幾個類的友元!
9樓:巴扎嘿
友元函式的定義。
友元函式是指某些雖然不是類成員卻能夠訪問類的所有成員的函式。
一般函式應該指的是非類成員函式,將乙個非類成員函式作為某個類的友元函式,這個應該是沒有錯的,很多運算子過載不都是友元函式麼。
某個類成員函式說明為另乙個類的成員函式,這個也是可以的啊。
為什麼我感覺是對的?
這裡有個帖子寫的不錯,有關於友元函式的。
大家一起學習一下,找出錯誤。
10樓:網友
可以把乙個一般函式說明為某類的友元函式 --正確。
也可以將某類的成員函式說明為另類的友元函式 --錯誤:
可以將某類a說明為另類b的友元,則a的函式皆為b的友元函式。
C語言 簡述一下“陣列和指標的關係”
我就是很煩 陣列是一類同型別變數的集合,類似於屬於上的集合的概念,數字也是有集合的,比如整數集,實數集等。陣列也是一個集合,陣列的名字是集合的名字,陣列後面的方括號裡的數字,表示這個集合的大小,陣列名前面的型別說明符,表示這個陣列是什麼型別的集合,比如 int a 5 a是陣列的名字,因為我們後面要...
簡述市場營銷4p轉向4c的原因,簡述市場營銷4p轉向4c的原因 10
我的理解 它是一種營銷觀念的昇華。是從產品觀念到消費者需求觀念的轉變。 從產品到客戶的轉變,也是市場化運營 市場營銷中的4p,4c代表什麼 4p在市場營銷中常常提起 4p理論是營銷策略的基礎 簡單從其含義上理解,4p是指 產品 product price 渠道 place promotion 在市場...
求三題C語言題目答案的原因
慕名曉白 1.while根據對它後面的條件表示式的真假值來判斷是否執行一次迴圈,這裡的條件表示式是n 0,即給n賦值為0,整個條件表示式值為0.在c語言中,條件表示式的非零值表示真,零值表示假,所以該迴圈執行0次。2.ss 2 表示由2個abc 結構體組成的陣列,結構體abc由三個int整型數a,b...