Как я могу использовать суд <<myclass

myclass класс C++, записанный мной и когда я пишу:

myclass x;
cout << x;

Как я произвожу 10 или 20.2, как integer или a float значение?

69
задан Shades 14 August 2018 в 02:34
поделиться

3 ответа

это очень просто, просто реализуйте:

std::ostream & operator<<(std::ostream & os, const myclass & foo)
{
   os << foo.var;
   return os;
}

Вам нужно вернуть ссылку на os, чтобы связать вывод (cout << foo << 42 << endl)

9
ответ дан 24 November 2019 в 13:52
поделиться

Как правило, путем перегрузки 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;
}
82
ответ дан 24 November 2019 в 13:52
поделиться

Вам нужно перегрузить оператор <<,

std::ostream& operator<<(std::ostream& os, const myclass& obj)
{
      os << obj.somevalue;
      return os;
}

Тогда, когда вы делаете cout << x (где x имеет тип myclass в вашем случае), он будет выводить то, что вы ему сказали в методе. В приведенном примере это будет член x.somevalue.

Если тип члена не может быть добавлен непосредственно к ostream, то вам нужно будет перегрузить оператор << для этого типа, используя тот же метод, что и выше.

20
ответ дан 24 November 2019 в 13:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: