トランプのクラスを持つプログラムを作成しようとしていますが、「初期化されていないローカル変数 'スーツ' が使用されています」というエラーが発生します。デフォルトのコンストラクトが変数を初期化すると思っていたので、一生理由を理解できません。問題を説明するために、コードを以下に示します。
#include "Card.h"
#include <iostream>
using namespace std;
int main() {
Card Hand('D','H');
Hand.getSuit();
return 0;
}
これは、クラスを実行する必要がある私のドライバーです。これが私のプログラムファイルです:
#include "Card.h"
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
Card::Card()
{
suit = 'H';
rank = '1';
worth = 1;
}
Card::Card(char b , char h)
{
suit = 'H';
rank = 'H';
worth = 1;
}
char getSuit(){
char suit = suit;
cout << suit;
return suit;
}
そして、ここに私のヘッダーファイルがあります:
#ifndef CARD_H
#define CARD_H
class Card
{
private:
char suit;
char rank;
int worth;
public:
Card::Card();
Card::Card(char, char );
char getSuit();
char getRank();
int getWorth();
};
#endif