私はplayersと呼ばれるベクトルとPlayerと呼ばれるクラスを持っています。そして、私がやろうとしていることは、次のように書くことです:
players.push_back(Player(name, Weapon(bullets)));
だから私はループでプレイヤーを作成できるようにしたい. しかし、「Player::Player の呼び出しに一致する関数がありません...」というエラー メッセージが表示されます。
次に、次のように変更しました。
Weapon w(bullets);
Player p(name, w);
players.push_back(p);
これが私のプレーヤーの定義です:
class Player {
public:
Player(string &name, Weapon &weapon);
private
string name;
Weapon weapon;
}
これらの定義の違いは何かを学ぼうとしています。そして、これはオブジェクトコンストラクターにオブジェクトを渡す正しい方法ですか?
注: これらは私の実際のクラス定義ではありません。私は、C++ でのオブジェクト指向プログラミングについて、コーディングして何かを学ぼうとしています。つまり、プレイヤーで武器を初期化できることを知っています:)