私はMagickというテキストベースのアドベンチャーゲームを作っています。このゲームで
私はそれがこのベクトル要素を印刷しようとすると 'operator <<'に一致しません
class damageSpell {
public:
int damage;
SubClasses type;
int manaCost;
std::string spellDescription;
};
ように私はそう
std::vector<damageSpell> damageSpells
後でのようなベクトルの型として、このクラスを使用し、私が追加しようとしたに見えますdamageSpell
ラベルされたクラスを持っていますベクトル上にinsert
関数を使用して、要素を私のdamageSpells
ベクトルに挿入します。
damageSpell fireball;
user.damageSpells.insert(user.damageSpells.begin(), 0, fireball);
は、その後、私は、私はC++に新しいですし、これが意味や方法を何見当がつかないこのエラー
magick1.cpp:252:15: error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and ‘damageSpell’)
を受け、これを行う際に
std::cout << user.damageSpells[0];
を、それをプリントアウトしようとしました私はそれを修正するために行く必要があります、すべての助けが感謝されます。
[Operator Overloading](http://stackoverflow.com/questions/4421706/operator-overloading)、特に「Bitshift Operators」に関する選択された回答のセクションが有益です。 – WhozCraig
'<<"演算子を使った出力は自動的に起こるものではありません。代わりに、各標準タイプの出力を扱う '<<'演算子の特殊なオーバーロードがあります。出力演算子で独自の構造体を出力したい場合は、独自のカスタム 'operator <<'関数を記述する必要があります。ちょうどすべての[良い初心者の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)はあなたにそれを行う方法を教えてくれるでしょう。 –
何かをベクターに入れて印刷できないと思いますか?たぶん、ベクトルを忘れて、 'damageSpell'オブジェクトを印刷してみてください。 – juanchopanza