為什麼c中過載流操作符要用友元函式

2021-03-03 20:44:21 字數 548 閱讀 3369

1樓:匿名使用者

1.用友元函式過載流操作符,首先是因為友元函式可以訪問類內部成員;

2.不用成員函式過載流操作符,是因為流操作符左邊必須是要新增成員函式的類;

2樓:匿名使用者

因為不用右元怎麼訪問物件的內容呢。

c++中的過載運算子<<和>>為什麼是只可以為友元函式,不可是成員函式?我覺得沒問題呀, 10

3樓:匿名使用者

如果是過載雙目來操作符(即為類源

的成員函式),就只要設定一個引數作為右側運算量,而左側運算量就是物件本身。。。。。。

而 >> 或<< 左側運算量是 cin或cout 而不是物件本身,所以不滿足後面一點。。。。。。。。就只能申明為友元函式了。。。

如果一定要宣告為成員函式,只能成為如下的形式:

ostream & operator<<(ostream &output)

所以在運用這個《運算子時就變為這種形式了:data<

不合符人的習慣。

C運算子過載為什麼流運算子不能過載為成員函式

class object如果實現了成員operator 呼叫其物件格式o 載運算子為成員函式後,當呼叫該運算子時,左運算元必須是該類的例項。友元函式 流引數定義第一個引數.才能呼叫cout 雖然不能 過載 為成員函式,但是可以定義為新的成員函式,只不過使用習慣和常例不符而已。試想一下這一點 將我們的...

c函式過載,c中函式過載的原則是什麼啊

c語言沒有函式過載一說,c 有。c 過載 只要函式名相同,引數個數或型別不同就構成過載 c 中函式過載的原則是什麼啊?函式過載的定義 函式過載是指在同一作用域內,可以有一組具有相同函式名,不同引數列表的函式,這組函式被稱為過載函式。所以原則就是相同的函式名,不同的引數列表。返回值不能作為過載依據。函...

c中成員函式過載是什麼意思C中成員函式過載是什麼意思?

過載函式 過載,英文為overloading,大概就是很多個的意思。舉個例子,比如,我需要個函式。取2個int的最大值。很容易,函式介面應該是 1 int max int a,int b 那更進一步,我取3個 int 的最大值呢,介面可以定義為 2 int max int a,int b,int c...