Как позвонить & lt; & lt; оператор на объекте в массиве?

У меня есть массив указателей на объекты

Room *rooms[MAX_ROOMS];

rooms[0] = new Room(101, 1, RT_CLASSIC, 200.00);
rooms[1] = new Room(102, 2, RT_CLASSIC, 280.00);
rooms[2] = new Room(103, 4, RT_FAMILY_SUITE, 360.00);

Учебный класс Номер имеет перегруженного друга <<:

std::ostream& operator<<(std::ostream &out, const Room &room) {
return out << room.toString();
}

Как мне вывести номера массив, как это:

for(int i = 0; i < num_of_rooms; i++) {
cout << rooms[i] << "\n";
}

Потому что теперь он выводит адреса Номер объекты. Мне нужно, чтобы позвонить Номер << оператор.

Спасибо за ответ.

0

Решение

Вот так:

cout << *(rooms[i]) << "\n";

rooms[i] возвращает указатель на Room, вот почему cout печатает адрес. Чтобы получить сам объект, вы должны разыменовать его (как указано выше).

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]