У меня есть сложный объект, который я хочу передать в std::ostringstream
с оператором <<
, как строка или int. Я хочу дать ostringstream уникальный идентификатор объекта (int) и/или имя (строка). Есть ли в моем классе оператор или метод, позволяющий этому работать?Stringstream - преобразовать объект в строку
1
A
ответ
3
Определение перегрузки оператора в том же пространстве имен вашего класса:
template<typename charT, typename traits>
std::basic_ostream<charT, traits> &
operator<< (std::basic_ostream<charT, traits> &lhs, Your_class const &rhs) {
return lhs << rhs.id() << ' ' << rhs.name();
}
Если функция вывода необходим доступ к закрытым членам своего класса, то вы можете определить его как друга функции:
class Your_class {
int id;
string name;
template<typename charT, typename traits>
friend std::basic_ostream<charT, traits> &
operator<< (std::basic_ostream<charT, traits> &lhs, Your_class const &rhs) {
return lhs << rhs.id << ' ' << rhs.name;
}
};
Обратите внимание, что это не приводит к членной функции, это просто удобный способ объявить и определить функцию друга сразу.
+0
Параметр шаблона 'traits' имеет значение по умолчанию, поэтому его можно пропустить. – AlwaysLearning
Смежные вопросы
- 1. Пытается преобразовать строку в int, используя stringstream
- 2. Преобразовать объект в строку
- 3. Преобразовать stringstream макрос работать
- 4. Как преобразовать из stringstream в строку в C++?
- 5. Преобразовать строку даты Объект
- 6. Powershell: преобразовать объект в строку
- 7. Преобразовать объект PHP в строку
- 8. Невозможно преобразовать объект в строку
- 9. Преобразовать LXML объект в строку
- 10. JavaScript преобразовать строку в объект
- 11. Преобразовать строку в JSON объект
- 12. Javascript преобразовать объект в строку
- 13. Как преобразовать объект в строку?
- 14. Как преобразовать объект в строку
- 15. Как преобразовать строку в объект
- 16. Как преобразовать строку в объект?
- 17. JS: преобразовать строку в объект
- 18. Невозможно преобразовать объект в строку
- 19. Преобразовать строку в объект JSON
- 20. JSP преобразовать строку в объект
- 21. Как преобразовать объект в строку
- 22. Как преобразовать строку в объект?
- 23. Как преобразовать строку в объект
- 24. Как инициализировать объект stringstream
- 25. Почему stringstream :: str() усекает строку?
- 26. Преобразовать строку JSON объект C#
- 27. Как преобразовать вектор char в stringstream
- 28. Преобразовать массив (объект?) В строку в JavaScript
- 29. Невозможно преобразовать объект в строку в селене
- 30. Как преобразовать строку в объект в JAVA
Да, просто перегрузите << оператор - см. Http://stackoverflow.com/questions/4421706/operator-overloading –
уникальный идентификатор в каком контексте? В случае выполнения процесса вы можете использовать его адрес памяти. – Ivarpoiss
Это объекты «Студенты» для проекта класса. Каждый объект Student имеет имя, идентификатор, адрес и номер телефона и построен из txt-файла. –