Шаг 170 - Наши классы в потоке

Мы с Вами работали со стандартными типами. Но чем хорош C++, что он позволяет сделать из пользовательского класса практически стандартный тип путем перегрузки операторов сложения, вычитания и так далее. Тоже самое относится и к потокам. Давайте посмотрим пример.

#include "stdafx.h"
#include "iostream.h"
#include "strstrea.h"

class Date
{
	int mo, da, yr;
public:
	Date( int m, int d, int y )
	{
		mo = m; da = d; yr = y;
	}
	friend ostream& operator<< ( ostream& os, Date& dt );
};

ostream& operator<< ( ostream& os, Date& dt )
{
	return os << dt.mo << '/' << dt.da << '/' << dt.yr;
}

void main()
{
	Date dt( 5, 6, 92 );
	strstream buf;
	buf << dt;
	cout << buf.rdbuf(); 
}

В результате наш класс будет вести себя как обычная стандартная переменная в потоке.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.07.2002