■iostreamによる入出力

#include <iostream>
using namespace std;

class Rational {
	friend ostream& operator<<(ostream& s, const Rational& r);
	friend istream& operator>>(istream& s, Rational& r);
	void setn( int numerator ) { n = numerator; }
	void setd( int denominator ) { d = denominator; }
public:
	int n, d;
	Rational( int numerator = 0, int denominator = 1);
};

Rational::Rational( int numerator, int denominator)
{
	n = numerator;
	d = denominator;
}

ostream& operator<<(ostream& s, const Rational& r)
{
	s << r.n << '/' << r.d;
	return s;
}

istream& operator>>(istream& s, Rational& r)
{
	s >> r.n >> r.d;
	return s;
}

int main()
{
	int i = 10;
	Rational r;
	
	cin >> i >> r;
	cout << "整数: " << i << endl 
	<< "有利数: " << r << endl;
	
	return 0;
}

クラスのオブジェクトを入出力される場合はoperator<<、operator>>をサポートしている必要がある。