И вы можете перегружать 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 по потоку, подобного этому?