ベクトル要素を出力しようとすると、「演算子<<」に一致しません

アリス・ザ・ハッター

私はMagickと呼ばれるテキストベースのアドベンチャーゲームを作っています。
このゲームでは、damageSpell次のようなラベルの付いたクラスがあります

class damageSpell { 
    public:
        int damage;
        SubClasses type;
        int manaCost;
        std::string spellDescription; 
};

私はこのクラスをそのようなベクトルの型として使用しました

std::vector<damageSpell> damageSpells

後で、damageSpellsvectorのinsert関数を使用して、ベクトルに要素を追加しようとしました

damageSpell fireball;

user.damageSpells.insert(user.damageSpells.begin(), 0, fireball);

それからそれを印刷しようとしました

std::cout << user.damageSpells[0];

これを行うと、私はこのエラーを受け取りました

magick1.cpp:252:15:エラー: 'operator <<'に一致しません(オペランドタイプは 'std :: ostream {aka std :: basic_ostream}'および 'damageSpell'です)

私はC ++を初めて使用しますが、これが何を意味するのか、どのように修正すればよいのかわかりません。すべての助けをいただければ幸いです。

Aracthor

user.damageSpells[0]クラスのインスタンスですspellDamageそして、あなたのコンパイラはそれをどのように印刷するかについて何の考えも持っていません。<<演算子で呼び出されて出力される関数を定義する必要があります

この演算子のオーバーロードは、次のように定義できます。

std::ostream& operator<<(std::ostream& stream, const damageSpell& damageSpellToPrint)
{
    // Your code here
}

(like )とクラスのインスタンスの<<間で演算子を使用するたびに呼び出されます。たとえば、次のコードは、直接渡し、あなたのオペレータの関数を呼び出しますようパラメータととしてパラメータ:std::ostreamstd::coutstd::coutstreamuser.damageSpells[0]damageSpellToPrint

std::cout << user.damageSpells[0];

C ++での演算子のオーバーロードの概念を理解するのに役立つこの投稿またはこのドキュメントお勧めします

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

stdベクトルが演算子に一致しません==

分類Dev

演算子に一致しません

分類Dev

エラー:文字列を減算しようとすると、「演算子-」に一致しません

分類Dev

C ++ "std :: vector <std :: pair>を出力するときに演算子<<"に一致しません

分類Dev

'operator <<'に一致しません

分類Dev

'operator ='に一致しません

分類Dev

ベクトル計算が出力と一致しません

分類Dev

「any」に一致しますが、配列には一致しません

分類Dev

エラーによるコンパイラ:std :: pairのベクトルを使用しようとすると一致する関数がありません

分類Dev

#ompを使用する場合、「演算子-」に一致しません

分類Dev

C ++演算子<<に一致しません

分類Dev

std :: cinの演算子>>に一致しません

分類Dev

エラー:演算子<<に一致しません

分類Dev

要素がクラスに一致しません

分類Dev

エラーが発生し続ける '演算子>>'に一致しません;

分類Dev

正規表現はドットと一致しますが、最後には一致しません

分類Dev

演算子>>オーバーロードエラーを解決する方法(「演算子>>」に一致しません)

分類Dev

どのルートにも一致しません

分類Dev

Angular 5:どのルートにも一致しません

分類Dev

serialversionUIDが一致しません

分類Dev

RailsTimeWithZoneが一致しません

分類Dev

Django、URLが一致しません

分類Dev

入力が一致しません

分類Dev

Redexが一致しません

分類Dev

EasyRegExpが一致しません

分類Dev

ストリーミング演算子の問題を診断するにはどうすればよいですか: 'operator <<'に一致しません

分類Dev

式に一致しますが、#で始まる行には一致しません

分類Dev

式に一致しますが、#で始まる行には一致しません

分類Dev

ダブルポインタを逆参照できません。「演算子*に一致しません」

Related 関連記事

  1. 1

    stdベクトルが演算子に一致しません==

  2. 2

    演算子に一致しません

  3. 3

    エラー:文字列を減算しようとすると、「演算子-」に一致しません

  4. 4

    C ++ "std :: vector <std :: pair>を出力するときに演算子<<"に一致しません

  5. 5

    'operator <<'に一致しません

  6. 6

    'operator ='に一致しません

  7. 7

    ベクトル計算が出力と一致しません

  8. 8

    「any」に一致しますが、配列には一致しません

  9. 9

    エラーによるコンパイラ:std :: pairのベクトルを使用しようとすると一致する関数がありません

  10. 10

    #ompを使用する場合、「演算子-」に一致しません

  11. 11

    C ++演算子<<に一致しません

  12. 12

    std :: cinの演算子>>に一致しません

  13. 13

    エラー:演算子<<に一致しません

  14. 14

    要素がクラスに一致しません

  15. 15

    エラーが発生し続ける '演算子>>'に一致しません;

  16. 16

    正規表現はドットと一致しますが、最後には一致しません

  17. 17

    演算子>>オーバーロードエラーを解決する方法(「演算子>>」に一致しません)

  18. 18

    どのルートにも一致しません

  19. 19

    Angular 5:どのルートにも一致しません

  20. 20

    serialversionUIDが一致しません

  21. 21

    RailsTimeWithZoneが一致しません

  22. 22

    Django、URLが一致しません

  23. 23

    入力が一致しません

  24. 24

    Redexが一致しません

  25. 25

    EasyRegExpが一致しません

  26. 26

    ストリーミング演算子の問題を診断するにはどうすればよいですか: 'operator <<'に一致しません

  27. 27

    式に一致しますが、#で始まる行には一致しません

  28. 28

    式に一致しますが、#で始まる行には一致しません

  29. 29

    ダブルポインタを逆参照できません。「演算子*に一致しません」

ホットタグ

アーカイブ