C ++ Передача ostream в качестве параметра

Я работаю над домашним заданием для виртуального ролодекса, который вызвал основной класс, класс ролодекса и карточку учебный класс. Чтобы вывести содержимое всех «карточек» на консоль, в назначении сказано, что main () должен вызывать функцию show (...) в классе rolodex, передавая ей 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 вниз по потоку таким образом?

9
задан ChrisM 1 April 2011 в 00:39
поделиться