2016-12-01 4 views
1

私はクラスのコンストラクタを使用して、クラスのベクトルを埋めるためにしようとしていますが、私はコンパイルエラーを取得しています:ベクトル++

1>c:\users\admin\documents\visual studio 2010\projects\file_io_and_main_argv\file_io_and_main_argv\file_io_argv.cpp(121): error C2663: 'std::vector<_Ty>::push_back' : 2 overloads have no legal conversion for 'this' pointer

私はクラスのプレーヤーのためのC++のメインプログラムで使用していたコードは次のようになります。

const vector<Player> players; // vector list of players 

    players.push_back(Player(ID,pname,WINS,LOSSES,POSX,POSY)); //insert player into vector of players 

エラーはポイント "。"にあります。プレーヤーとpush_backの間。

+1

「const」を削除してください! 'push_back'はインスタンスが定数のときには動作しません。 –

答えて

2

constベクターを変更することはできません。 const vector<Player> players;

+0

何かの理由でconstが問題であった答えをありがとう、constを使用したコードの例が見つかりました。コンパイルエラーは役に立ちません。それをfiguare ... – homey

3

あなたplayersベクトルでconstを削除するには、constとして宣言されています

​​

constは、まさに意味:定数。それを変更することはできません。 push_back()できませんerase()ベクトルの既存の要素はできません、ベクトルの内容を変更するために何もできません。

宣言からconstキーワードを削除します。