これは私の不完全なコードです:誰かが私がやっている説明することで助けることができますC++の継承エラー
:私は、次のようないくつかのコンパイルエラーを取得しています
#include <iostream>
using namespace std;
class Tool {
public:
int strength;
char type;
int result;
void setStrength(){
}
};
class scissors:public Tool{
public:
scissors(){
strength=0;
type=NULL;
}
scissors(int x){
strength=x;
type='s';
}
bool fight(paper){
paper p1;
scissors s1;
s1.result=p1.strength < s1.strength;
return s1.result;
}
bool fight(rock){
scissors s1;
rock r1;
s1.result=r1.strength < s1.strength;
return s1.result;
}
};
class paper:public Tool{
public:
paper(){
strength=0;
type=NULL;
};
paper(int x){
strength=x;
type='p';
}
bool fight(scissors){
paper p1;
scissors s1;
p1.result=p1.strength < s1.strength;
return p1.result;
}
bool fight(rock){
paper p1;
rock r1;
p1.result=r1.strength < p1.strength;
return p1.result;
}
};
class rock:public Tool{
public:
rock(){
strength=0;
type=NULL;
};
rock(int x){
strength=x;
type='r';
}
bool fight(paper){
paper p1;
rock r1;
r1.result=p1.strength < r1.strength;
return r1.result;
}
bool fight(scissors){
rock r1;
scissors s1;
r1.result=r1.strength < s1.strength;
return r1.result;
}
};
int main() {
// Example main function
// You may add your own testing code if you like
scissors s1(5);
paper p1(7);
rock r1(15);
cout << s1.fight(p1) << p1.fight(s1) << endl;
cout << p1.fight(r1) << r1.fight(p1) << endl;
cout << r1.fight(s1) << s1.fight(r1) << endl;
return 0;
}
間違って、どのように私はこれらのすべてのエラーを修正することができます私はメインで指定されたコードに従ってメインでそれらを比較することができますか?
1番目:_ "これは私の不完全なコードです:" _ Bad! 2番目:スクリーンショットではなく、質問に逐語的なテキストとしてエラーメッセージを投稿してください!第3回:投稿する[MCVE]、ありがとう。 –
不完全なことで、私はまだそれを拡張する予定だということを意味しています。これは私が今言っているエラーと同じコードです。エラーメッセージを逐語的なテキストとして投稿します。フィードバックに感謝します。私の最初の質問 –
これらのクラスをヘッダーファイルと実装ファイルに分け、ヘッダーで前方宣言を使用する必要があります。 –