Je fais un quiz sur une classe de niveau intro en C++ et j'essaie de comprendre une question. Après avoir cherché sur Internet et ne pas avoir de réponse, alors je suis là.Différence entre fstream, ofstream, ostream, iostream
Which of the following function declarations will accept either cout or a file stream
object as its argument?
A. void output(fstream &outFile);
B. void output(ofstream &outFile);
C. void output(ostream &outFile);
D. void output(iostream &outFile);
La réponse est C.
Je sais la différence entre: fstream, ofstream, ostream, iostream. Ce que je ne comprends pas, c'est pourquoi aucune des autres options n'est capable d'accepter l'objet cout ou stream en tant qu'argument.
La réponse est-elle aussi simple que les objets ostream contiennent des données (char, etc) qui peuvent être passées en arguments?
Toute information serait grandement appréciée.
Peut-être que [cette référence d'E/S C++] (http://fr.cppreference.com/w/cpp/io) et son diagramme de hiérarchie d'héritage peuvent vous aider? –
Relatif: [Est-il possible de transmettre des classes dérivées en référence à une fonction prenant la classe de base en paramètre] (https://stackoverflow.com/questions/9285627/is-it-possible-to-pass-derived-classes- par-référence-à-une-prise-de-fonction-prise-cl) – Borgleader
Je choisirais 'D' parce qu'un flux de fichier peut être entré et sorti. Réponse 'C' est sorti seulement. –