Ho una classe C++ MyObject
e voglio essere in grado di alimentare questi dati come farei con un osstream (ma a differenza di un flusso diretto, i dati in arrivo devono essere formattati a modo speciale). Non riesco a capire come sovraccaricare un operatore per MyObject per mangiare input dati ad esso.Una classe C++ si comporta come un ostream personalizzato, sstream
class MyObject {
public:
ostringstream s;
FEEDME
};
int main() {
MyObject obj;
obj.FEEDME << "Hello" << 12345;
// I want obj.s == ":Hello::12345:"
}
lo voglio così ogni elemento alimentato a essere circondato da::
Quindi, nell'esempio dato, s = ": Ciao :: 12345" dovrebbe essere il risultato finale. Qual è la mia domanda, come posso dire all'oggetto che, quando mai un <<something
, metti:: intorno a qualcosa.
È possibile?
Grazie, credo di avere basi su come attuare subito, ancora ottenere un errore di "errore: Utilizzo non valido di utente (? Hai dimenticato il '&')" per MyObject & operator < <(const T & x) { Ma si scherza e si risolve. Grazie, signore. –
Penso che compili bene in g ++ 4.3.3, cosa sta usando il compilatore? –
g ++ (GCC) 4.3.2, sei corretto compila e funziona esattamente come lo voglio io! Grazie. Il problema sembra essere qualcosa di particolare per il mio programma. –