OriginalGriff
Вероятно, на практике вы этого не хотите: cin и cout очень гибки и могут возвращать или принимать огромное количество контекстно-зависимых типов: целые числа, поплавки, двойники, символы, строки ...
Вам придется сделать свой класс таким, чтобы он мог возвращать каждый из них, а это большая работа для чего-то, что на самом деле не сделает ваш код более читаемым (и что вы не будете использовать снова через пару недель, когда ваш курс перейдет от консольных приложений к графическим, где cin и cout вообще не используются).
Я бы на его месте нашел проект получше!