Как использовать cout << myclass
myclass
- это класс C++, написанный мной и когда я пишу:
myclass x;
cout << x;
Как вывести 10
или 20.2
, как integer
или значение с float
?
Ответы
Ответ 1
Обычно, перегружая operator<<
для вашего класса:
struct myclass {
int i;
};
std::ostream &operator<<(std::ostream &os, myclass const &m) {
return os << m.i;
}
int main() {
myclass x(10);
std::cout << x;
return 0;
}
Ответ 2
Вам нужно перегрузить оператор <<
,
std::ostream& operator<<(std::ostream& os, const myclass& obj)
{
os << obj.somevalue;
return os;
}
Тогда, когда вы выполняете cout << x
(где x
имеет тип myclass
в вашем случае), он выводит все, что вы сказали ему в методе. В случае примера выше он будет членом x.somevalue
.
Если тип элемента не может быть добавлен непосредственно в ostream
, вам также потребуется перегрузить оператор <<
для этого типа, используя тот же метод, что и выше.
Ответ 3
это очень просто, просто выполните:
std::ostream & operator<<(std::ostream & os, const myclass & foo)
{
os << foo.var;
return os;
}
Вам нужно вернуть ссылку на os, чтобы связать outpout (cout < foo < 42 < endl)
Ответ 4
Альтернатива:
struct myclass {
int i;
inline operator int() const
{
return i;
}
};