C++ C++;扑克牌课

C++ C++;扑克牌课,c++,visual-studio-2010,class,C++,Visual Studio 2010,Class,我试图创建一个程序,该程序将有一个扑克牌类,但是我遇到了一个“未初始化的局部变量'suit'used”错误。我一辈子都不知道为什么,因为我认为默认构造会为我初始化变量。 我把代码放在下面来描述我的问题 #include "Card.h" #include <iostream> using namespace std; int main() { Card Hand('D','H'); Hand.getSuit(); return 0; } 此外,感谢Anton,命名局部变量su

我试图创建一个程序,该程序将有一个扑克牌类,但是我遇到了一个“未初始化的局部变量'suit'used”错误。我一辈子都不知道为什么,因为我认为默认构造会为我初始化变量。 我把代码放在下面来描述我的问题

#include "Card.h"
#include <iostream>
using namespace std;

int main() {
Card Hand('D','H');

Hand.getSuit();

return 0;
}
此外,感谢Anton,命名局部变量
suit
不是一个好的做法,因为现在不清楚您是要使用class属性
suit
还是局部变量
suit
。您应该更改其名称,或者指定何时将class属性与
this->suit
一起使用(第一个选项更好)


此外,感谢Anton,命名局部变量
suit
不是一个好的做法,因为现在不清楚您是要使用class属性
suit
还是局部变量
suit
。您应该更改其名称,或者指定何时将class属性与
this->suit一起使用(第一个选项更好)。

您需要指定getSuit是Card类的一部分

char-Card::getSuit()
此外:

char getSuit(){
char suit=suit;

cout您需要指定getSuit是Card类的一部分

char-Card::getSuit()
此外:

char getSuit(){
char suit=suit;

我也可以称之为在一个函数中同时命名局部变量和类变量为“suit”的糟糕做法。这会让人非常困惑……是的,这需要一些
这个
或其他名称。我会完成的。只要删除
char suit=suit;
就可以了。我不敢相信我忘记了这么明显的事情。whole suit=suit thing只是试图让程序初始化。@user2105982好吧,越明显,我们看到的就越少,对吗?另外,我认为在一个函数中同时命名局部变量和类变量“suit”是一种不好的做法。这会让人非常困惑……是的,这需要一些
这个
或其他一些呃name。我会完成的。只要删除
char suit=suit;
就可以了。我不敢相信我忘记了这么明显的事情。整个suit=suit的事情只是试图让程序初始化。@user2105982嗯,越明显,我们看到的越少,对吗?
#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
char getSuit(){
    char suit = suit;
    cout << suit;
    return suit;
}
char Card::getSuit(){
    char suit = suit;
    cout << suit;
    return suit;
}
char getSuit(){
    char suit = suit;
    cout << suit;
    return suit;
}