Как использовать 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; 
    }
};