如何在数组中的对象上调用<<运算符?
How to call << operator on object in array?
我有一系列指针
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
打印地址的原因。要获取对象本身,您必须将其解释(如上所述)。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- C++运算符<<调用::ostream而不是std::osttream
- C++是否可以将fstream对象设置为在每次调用<<
- 我可以使用define调用运算符<<