#include <iostream>
#include <string>
using namespace std;
class A{
private:
int x, y;
public:
A(int a, int b){x = a; y = b;}
friend ostream& operator<<(ostream& stream, A& a);
friend istream& operator>>(istream& stream, A& a);
};
ostream& operator<<(ostream& stream, A& a){
stream << a.x << " : " << a.y << endl;
return stream;
}
istream& operator>>(istream& stream, A& a){
cout << "座標入力 => "; stream >> a.x >> a.y;
return stream;
}
int main(){
A a(10, 20), b(30, 40);
cout << a << b; cin >> a; cout << a;
    return 0;
}
このプログラムを実行すると、
cpp(16) : error C2248: 'x' : private メンバ (クラス 'A' で宣言されている)にアクセスできません。 cpp(7) : 'x' の宣言を確認してください。
cpp(16) : error C2248: 'y' : private メンバ (クラス 'A' で宣言されている)にアクセスできません。 cpp(7) : 'y' の宣言を確認してください。
cpp(23) : error C2248: 'x' : private メンバ (クラス 'A' で宣言されている)にアクセスできません。 cpp(7) : 'x' の宣言を確認してください。
cpp(23) : error C2248: 'y' : private メンバ (クラス 'A' で宣言されている)にアクセスできません。 cpp(7) : 'y' の宣言を確認してください。
cpp(31) : error C2593: 'operator <<' があいまいです。 cpp(32) : error C2593: 'operator >>' があいまいです。 cpp(33) : error C2593: 'operator <<' があいまいです。
というエラーが出ます。本に書いてある通りに書いたんですが、なぜなのかわかりません。
どうしたら、ちゃんとできるのか教えてもらえないでしょうか?