#include <iostream>
#include <fstream>
using namespace std;
class Integer
{
public:
int i;
Integer (int ll = 0, int k = 0) : i (ll)
{
cout << "\nconstructor A\n";
}
Integer operator<< (const Integer& left, const Integer& right);
};
Integer operator<< (const Integer& left, const Integer& right)
{
cout << "\ndsfdsfdsf : " << "===" << right.i << "\n";
return left ;
}
int main()
{
Integer l;
l << 5 << 3 << 2;
return 0;
}
此代碼給出上述標題錯誤,當我從< <操作者的聲明刪除關鍵字friend
。
這裏沒有什麼私人的,爲什麼它會發生?錯誤:整數整數::運算<<(常量整數&,常量整數&)'必須採取只有一個參數
所以,當一個聲明是朋友,什麼是類意下如何? – 2012-01-03 08:20:37
@AnishaKaul:一個「朋友」適用於所有目的的普通功能,但具有特殊的訪問權限。該行爲與您在類的上方聲明瞭一個自由函數'Integer運算符<<(const Integer&left,const Integer&right)',並且公開所有成員的行爲相同。 – thiton 2012-01-03 08:23:05