И вы можете перегружать Rolodex, чтобы просто перебирать карты.

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

Ответы на вопрос(2)

Ваш ответ на вопрос