если вам нужно перегрузить operator<<
как:
std::ostream& operator<<(std::ostream& out, const MyClass & obj)
{
//use out to print members of obj, or whatever you want to print
return out;
}
Если для этой функции требуется доступ к закрытым членам MyClass
, то вам нужно сделать ее friend
из MyClass
или, альтернативно, вы можете делегировать работу какой-то общедоступной функции класса.
Например, предположим, что у вас есть точечный класс, определенный как:
struct point
{
double x;
double y;
double z;
};
Тогда вы можете перегрузить operator<<
как:
std::ostream& operator<<(std::ostream& out, const point & pt)
{
out << "{" << pt.x <<"," << pt.y <<"," << pt.z << "}";
return out;
}
И вы можете использовать его как:
point p1 = {10,20,30};
std::cout << p1 << std::endl;
Вывод:
{10,20,30}
Демонстрационная версия онлайн: http://ideone.com/zjcYd
Надеюсь, это поможет.