c++プログラミング練習016:呆然と!ポイントがこんなに入出力できるなんて

6148 ワード

北京大学のプログラム設計とアルゴリズム(三)vs 2019から実現
説明
#include  
using namespace std;
class Point {
      
	private: 
		int x; 
		int y; 
	public: 
		Point() {
      };
//          
}; 
int main() 
{
      
 	Point p;
 	while(cin >> p) {
     
 		cout << p << endl;
	 }
	return 0;
}


入力
複数グループのデータ、各グループの2つの整数
しゅつりょく
各グループのデータに対して、1行を出力します.入力した2つの整数です.
サンプル入力
2 3 4 5
サンプル出力
2,3 4,5ソースGuo Wei
インプリメンテーション
#include  
using namespace std;
class Point {
     
private:
	int x;
	int y;
public:
	Point() {
      };
	friend istream& operator>>(istream & is,Point & p) {
     
		is >> p.x >> p.y;
		return is;
	}
	friend ostream& operator<<(ostream & os,const Point & p) {
     
		os << p.x << "," << p.y;
		return os;
	}
};
int main()
{
     
	Point p;
	while (cin >> p) {
     
		cout << p << endl;
	}
	return 0;
}

要点
1.ストリーム挿入演算子とストリーム抽出演算子のリロード、すなわち左シフト右シフトリロード2.パラメータ伝達は参照方式で行われ、オブジェクトの参照も返されるため、リロードされた演算子は連続出力を実現できます.
3.c++標準ライブラリに出力されるオブジェクトは、bool、int、doubleなどのC++内蔵データ型と、string、complex、ofstream、ifstreamなどの標準ライブラリに含まれるクラス型のみです.
coutはostreamクラスのオブジェクト、cinはistreamクラスのオブジェクトです.グローバル関数(友元関数)として再ロードする必要があります<>