나는 게임 카드를위한 클래스를 가진 프로그램을 만들려고 노력하고 있습니다. 그러나 "초기화되지 않은 로컬 변수 '슈트'사용됨 '오류가 발생합니다. 나는 왜 나를 생각할 수 없는지, 기본 구조가 나를 위해 변수를 초기화 할 것이라고 생각했다. 내 문제를 설명하기 위해 아래 코드를 써 놓았습니다.C++ Playing Card 클래스
#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
또한 로컬 변수와 클래스 변수를 하나의 함수 'suit'로 명명하는 것은 좋지 않습니다. 혼란 스러울 정도로 지옥을 만듭니다 ... – SinisterMJ
예, '이'또는 다른 이름이 필요합니다. 나는 끝낼 것이다. – Morwenn
'char suit = suit;'를 제거하면 괜찮습니다. –