#c
#c
Вопрос:
Я создал конструктор
Location(double xIn,double yIn,string placeIn,int timeIn)
: x(xIn),y(yIn) ...so on {
Допустим, я хочу напечатать местоположение дома (x, y, место, время); это в main()
.
Как мне это сделать? Я искал вокруг, и мне сказали использовать operator<<
. Как бы я это реализовал?
ОБНОВЛЕНИЕ: после создания некоторых методов get, и я попытался выполнить, не могу точно скомпилировать его из-за проблемы
ostream amp;operator<<(ostream amp; o, const Location amp; rhs){
o << rhs.getX() << "," << rhs.getY() << "," << rhs.getPlace() << "," << rhs.getTime();
return o; }
Комментарии:
1. Ваш заголовок и ваш вопрос не имеют никакого отношения друг к другу. Что касается вашего вопроса, продолжайте изучать и читать, пока не найдете пример и объяснение того, как написать свой собственный оператор вставки потока; на выбор доступны десятки тысяч.
2. Я только что понял, что не закончил писать свой заголовок, прежде чем писать свой вопрос….
3. » было бы правильно это сделать?» Ну, он сделал то, что вы хотели?
4. Нет, это не так… Я спрашивал, на правильном ли я пути.
5. Я рекомендую использовать более значимые имена переменных, чем
lhs
(левая сторона) илиrhs
(правая сторона).
Ответ №1:
Вот шаблон для перегрузки operator<<
:
class Any
{
public:
friend std::ostreamamp; operator<<(std::ostreamamp; output, const Anyamp; a);
private:
int member;
};
std::ostreamamp;
operator<<(std::ostreamamp; output, const Anyamp; a)
{
output << a.member;
return output;
}
Это один из возможных шаблонов, есть и другие возможности. Найдите в Интернете «пример перегрузки оператора вставки потока c » для других реализаций.