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