Это мой код для одного из классов, к счастью, я продолжаю ошибаться, говоря, что "оружие - это не тип", о котором я знаю, просто не знаю, какой тип это будет.
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 }
Тип weapon
не определен. Вы должны включить weapon.h в верхней части knight.h (прямо перед использованием). Если этого не существует, вы должны создать этот класс.
Ошибка здесь в том, что вы не объявили, что такое оружие.
У вас есть файл заголовка, который вы забыли включить?
Компилятор запускается для каждого файла.c/.cpp, который вы пишете, поэтому убедитесь, что #include заголовки, чтобы получить определения типов, которые вы ищете.
weapon
также должно быть классом?