C++ ::使用向量迭代器调用类方法?

cpp*_*oob 2 c++ vector class-method

我有一个名为Room的类,Room类有setPrice和display函数.

我将房间对象存储在矢量中:

room.push_back(Room("r001", 1004, 2, "small"));
room.push_back(Room("r002", 1005, 2, "small"));
room.push_back(Room("r003", 2001, 4, "small"));
room.push_back(Room("r004", 2002, 4, "small"));
Run Code Online (Sandbox Code Playgroud)

在我的主要功能中,我创建了一个显示所有房间的显示功能.这是我的代码:

void displayRoom()
{
    vector<Room>::iterator it;
    for (it = room.begin(); it != room.end(); ++it) {
         *it.display(); // just trying my luck to see if it works
    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有调用Room的显示方法.

如何调用Room(类)的显示方法(无参数)和setPrice(1参数)方法?

小智 10

解除引用的优先级高于成员访问权限.你可以添加parens((*it).display()),但是你应该使用很久以前(在C中)引入的快捷方式:it->display().

当然,同样的规则适用于指针和其他可以解除引用的东西(其他迭代器,智能指针等).