我有一个Room
类,它有这个构造函数:
Room::Room(string a, int b, int c, string d)
在我的主要功能中,我做了:
vector<Room> room;
sale.push_back("aaa", 1, 2, "ccc");
它给了我这个错误:
error: no matching function for call to ‘std::vector<Room, std::allocator<Room> >::push_back(const char [4])’
note: candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = Room, _Alloc = std::allocator<Room>]
我不明白这个错误。如何在矢量中添加新的房间对象?
答案 0 :(得分:4)
可能类似于:
std::vector<Room> rooms;
room.push_back(Room("aaa", 1, 2, "ccc"));
答案 1 :(得分:2)
您不能像以前那样使用push_back
函数,因为push_back
函数不会替换构造函数。这是解决方案:
vector<Room> rooms;
Room ins("aaa",1,2,"ccc");
rooms.push_back(ins);