В C ++ вы можете перегрузить operator<<
для ostream
и ваш собственный класс:
class A {
public:
int i;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.i << ")";
}
Таким образом, вы можете выводить экземпляры вашего класса в потоки:
A x = ...;
std::cout << x << std::endl;
Если ваш operator<<
хочет распечатать внутреннее содержимое класса A
и действительно нуждается в доступе к его закрытым и защищенным членам, вы также можете объявить его как функцию друга:
class A {
private:
friend std::ostream& operator<<(std::ostream&, const A&);
int j;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.j << ")";
}