Как исправить ошибку типа объекта

0

Это мой код для одного из классов, к счастью, я продолжаю ошибаться, говоря, что "оружие - это не тип", о котором я знаю, просто не знаю, какой тип это будет.

knight.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 }
  • 0
    Я думаю, тебе придется объявить оружие классом.
  • 0
    Я предполагаю, что weapon также должно быть классом?
Показать ещё 5 комментариев
Теги:

2 ответа

3

Тип weapon не определен. Вы должны включить weapon.h в верхней части knight.h (прямо перед использованием). Если этого не существует, вы должны создать этот класс.

3

Ошибка здесь в том, что вы не объявили, что такое оружие.

У вас есть файл заголовка, который вы забыли включить?

Компилятор запускается для каждого файла.c/.cpp, который вы пишете, поэтому убедитесь, что #include заголовки, чтобы получить определения типов, которые вы ищете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню