Оператор вывода не должен быть членом класса в C++, потому что если функция оператора является членом класса, её левый операнд (передаваемый неявно посредством указателя this) должен быть членом этого класса, который вызывает эту функцию. 4
Оператор вывода определяется вне класса как обычная функция. 3