1
在下面的例子中,我想知道爲什麼我們使用通過引用ostream的調用。我在刪除&時遇到錯誤,但沒有完全收到錯誤消息。在對象中使用cout,爲什麼我們需要通過引用來調用
class MyArray{
private:
int x[10];
public:
MyArray(int n)
{
for (int i = 0; i < 10; i++)
x[i] = n;
}
friend ostream& operator<<(ostream& pa, MyArray ob);
};
ostream& operator<<(ostream& pa, MyArray ob)
{
for (int i = 0; i < 10; i++)
pa << ob.x[i];
return pa;
}
int main()
{
MyArray a(5);
cout << a;
return 0;
}
因爲'的std :: ostream'沒有可訪問的複製或移動構造 – WhiZTiM
因爲如果我們按值傳遞它,我們需要複製COUT對象,這沒有任何意義 – Malice
多一點的解釋將是完美的,我想我知道了。 謝謝@Malice WhizTiM – Arey