Pertanyaan C ++ Format untuk cout << Secara Otomatis


Jika saya memiliki kelas sederhana dengan dua variabel, x dan y, dan fungsi ToString () yang mengembalikan string berformat dengan data. Ketika saya menelepon

cout << simpleClass << "\n";

ada yang tahu cara saya bisa simpleClass.ToString secara otomatis dipanggil untuk mengembalikan string yang diformat dengan benar? Saya kira ada cara untuk melakukan ini dengan fungsi operator, tetapi saya tidak tahu bagaimana saya akan melakukan ini.


5
2017-07-21 01:30


asal


Jawaban:


Jika Anda bertanya bagaimana mendefinisikan operator seperti itu,

template<class CharT, class TraitsT>
std::basic_ostream<CharT, TraitsT>&
operator <<(std::basic_ostream<CharT, TraitsT>& os, SimpleClass const& sc)
{
    return os << sc.ToString();
}

9
2017-07-21 01:33



Anda mendefinisikan

std::ostream& operator <<(std::ostream&, const SimpleClass&)

memanggil ToString(), melewati ostream&, dan kembalikan ostream&.


2
2017-07-21 01:34