C++ ostream et ofstream conversions
Mon code a un ostream
objet qui est accumulé par les différents modules et en fin de compte affiche sur la console. Je tiens tout de même à écrire ce ostream
objet dans un fichier, mais dois-je réécrire tout le code à l'aide d'un ofstream
objet au lieu de cela, ou est-il un moyen de convertir un à l'autre (peut-être par l'intermédiaire d'un stringstream
?)
Par exemple, beaucoup de mes fonctions actuelles ressemblent à des
ostream& ClassObject::output(ostream& os) const
{
os << "Details";
return os;
}
Puis-je appeler cette fonction avec une ofstream
objet comme argument et qui ont ofstream
objet d'accumuler des informations à la place?
"ce que je Peux appeler cette fonction avec un ofstream objet?" Oui.
ofstream
hérite de ostream
, de sorte que vous pouvez passer à la ofstream
directement à cette fonction.OriginalL'auteur Tom | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Oui, vous le pouvez. C'est le point dans le OO concept appelé sous-type de polymorphisme. Depuis
ofstream
dérive deostream
, chaque instance deofstream
est à la fois une instance deostream
trop (conceptuellement). De sorte que vous pouvez l'utiliser partout où une instance deostream
est prévu.OriginalL'auteur