私は、メイン クラス、rolodex クラス、およびカード クラスを必要とする仮想 rolodex の宿題プロジェクトに取り組んでいます。すべての「カード」の内容をコンソールに出力するために、代入では main() が rolodex クラスの show(...) 関数を呼び出し、ostream を渡して show(...) を繰り返します。各カードの showCard() 関数を呼び出します。実際の表示は、カード オブジェクトの showCard() 関数によって行われ、提供された ostream に表示されます。
私が理解していないのは、ostream がどこにでも渡される/渡されるべき理由です。割り当ては次のようなものを求めているようです:
main() {
Rolodex myRolodex;
ostream myStream;
myRolodex.show(myStream);
}
void Rolodex::show(ostream& theStream) {
//for each card 'i' in the Rolodex...
myCard[i].show(theStream);
}
void Card::show(ostream& theStream) {
theStream << "output some stuff" << endl;
}
このようなものの代わりに:
main() {
Rolodex myRolodex;
myRolodex.show(); //no ostream passed
}
void Rolodex::show() {
//for each card 'i' in the Rolodex...
myCard[i].show();//no ostream passed
}
void Card::show() {
cout << "output some stuff" << endl;
}
パラメータとしての ostream の使用を誤解しているか、そのように ostream をストリームに渡す他の明白な理由を見逃していますか?