0

これはクラスの 1 つに対する私のコードです。残念ながら、「武器はタイプではありません」というエラーが表示され続けますが、これがどのタイプになるかは不明です。

騎士.h

  1 #ifndef KNIGHT_H
  2 #define KNIGHT_H
  3 
  4 using namespace std;
  5 
  6 class knight
  7 {
  8   private:
  9     string name;
 10     int stamina;
 12     weapon weapon_in_hand(string weapon_type, int sr, int hc);*The problem is here*
 13 
 14   public:
 15     void on_horse();
 16     knight(string name, int stamina, string weapon_type, int sr,int hc);
 17     bool hit();
 18     void unhorse_yourself();
 19     bool are_you_exhausted();
 20     void display();
 21 };
 22 #endif
~                                                                               
"knight.h" 22L, 418C                                          1,1           All

そして、これはそれが接続するものです

 25 bool hit()
 26 {
 27   stamina=stamina-weapon_in_hand.stamina_required();
 28   if(weapon_in_hand.did_you_hit()==true)
 29     return true;
 30   else
 31     return false;
 32 knight::knight(string n, int st, string weapon_type, int sr,int hc)
 33   :name(n), stamina(st), weapon_in_hand(weapon_type, sr, hc)
 34 {
 35 }
4

2 に答える 2

3

ここでのエラーは、武器が何であるかを宣言していないことです。

インクルードするのを忘れたヘッダー ファイルはありませんか?

コンパイラは、作成した .c/.cpp ファイルごとに最初からやり直すため、探している型定義を取得するためにヘッダーを #include するようにしてください。

于 2013-10-31T22:09:40.430 に答える
3

タイプweaponが定義されていません。Knight.h の先頭 (使用する直前) に Weapon.h を含める必要があります。これが存在しない場合は、このクラスを作成する必要があります。

于 2013-10-31T22:11:15.840 に答える