2011-01-23 10 views
0

私はRoomクラスを持っており、それがこのコンストラクタを持っていますベクターエラーメッセージとC++でベクトルにオブジェクトを挿入する方法は?

Room::Room(string a, int b, int c, string d) 

そして、私は私の主な機能には:

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>] 

Iドン:

vector<Room> room; 
sale.push_back("aaa", 1, 2, "ccc"); 

それは私に、このエラーが発生しますこのエラーは理解できません。どのようにして新しいルームオブジェクトをベクトルに追加できますか?

+0

関連性のために追加されたC++タグ。 – Maxpm

+0

cppタグが削除されました。この質問はプリプロセッサに関するものではありません。 –

+0

申し訳ありませんが、私はcppとC++の違いを知りません。私は将来もっと慎重になるでしょう –

答えて

4

おそらくのようなもの:

std::vector<Room> rooms; 
room.push_back(Room("aaa", 1, 2, "ccc")); 
+0

ベストアンサーに選ばれました。次に、私は特定の部屋の特定の情報を編集する方法を見つける必要があります。 –

+0

'Room'にpublicメンバー' roomNumber'がある場合、 'rooms [0] .roomNumber'のようにアクセスできます – Mahesh

2

push_back関数がコンストラクタを置き換えないため、push_back関数をそのまま使用することはできません。ここでは解決策は以下のとおりです。

vector<Room> rooms; 
Room ins("aaa",1,2,"ccc"); 
rooms.push_back(ins); 
+0

ありがとう、現在私はこのメソッドを使用し、それは動作します! –

関連する問題