Je cherche un moyen d'utiliser un ostream avec ma classe de chaînes personnalisée et de surcharger l'opérateur < < pour diffuser dans le tampon que je peux ensuite vider à n'importe où je veux (dans Je suis relativement nouveau dans le fonctionnement interne d'iostream, mais d'après ce que j'ai compris, la méthode que j'ai utilisée pour faire de std :: stringbuf une base de ma strings personnalisée ne serait pas une nouveauté dans le fonctionnement interne de iostream. fonctionne car le stringbuf gère la chaîne std :: string.En utilisant ma propre classe String avec l'opérateur <<
en substance, je veux pouvoir le faire (ou similaire):
MyStringClass string
MyOutput << "hello" << string << "World" << std::endl;
Où MyOutput peut être changé pour imprimer n'importe où je veux.
Merci.
est-ce si simple? mais l'ostream que ma chaîne est en sortie, n'est-ce pas traiter avec std :: strings? ou suis-je simplement en train d'ignorer cela et de faire l'impression dans la définition de l'opérateur? merci –
'ostream' est le type de' cout'; il n'a aucune relation avec std :: string. Ma déclaration vous permettrait d'utiliser 'cout << yourstring' mais vous n'êtes pas obligé d'utiliser cout; Utilisez n'importe quelle destination que vous voulez. – Aganju
@LukeBourne Dans votre fonction '' ', vous devez sortir un autre type, tel que' std :: string', qui a déjà une méthode de sortie définie. – Barmar