如何在数组中的对象上调用<<运算符?

How to call << operator on object in array?

本文关键字:lt 调用 运算符 对象 数组      更新时间:2023-10-16

我有一系列指针

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);

class 房间有一个超载的朋友操作员&lt;&lt;:

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";
}

现在,现在它将地址输出到房间对象。我需要它打电话给我的房间&lt;&lt;操作员。

谢谢您的回答。

喜欢:

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

rooms[i]返回指向Room的指针,这就是cout打印地址的原因。要获取对象本身,您必须将其解释(如上所述)。