C Как мне распечатать объект?

#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 » для других реализаций.