C++ ';的左侧;。色标';必须具有类/结构/联合
试图访问类Hand中的结构成员时出现以下错误:“.colorBet”左侧的错误:C2228:必须具有class/struct/union 手C++ ';的左侧;。色标';必须具有类/结构/联合,c++,class,struct,compiler-errors,C++,Class,Struct,Compiler Errors,试图访问类Hand中的结构成员时出现以下错误:“.colorBet”左侧的错误:C2228:必须具有class/struct/union 手 #ifndef HAND_H #define HAND_H #include"deck.h" #include <QVector> #include <QString> struct street { QString colorBet; int colorBetSize; int payout;
#ifndef HAND_H
#define HAND_H
#include"deck.h"
#include <QVector>
#include <QString>
struct street
{
QString colorBet;
int colorBetSize;
int payout;
};
class Hand
{
QVector<card> cardVector;
public:
Hand(QVector<card> vCards);
bool isFlush();
bool isAllRed();
bool isAllBlack();
street street1;
street street2;
street street3;
};
#endif // HAND_H
您必须声明Hand类型的对象:
Hand hand;
hand.street1;
...
您还可以将街道字段声明为静态。您必须声明Hand类型的对象:
Hand hand;
hand.street1;
...
您还可以将街道字段声明为静态。
Hand::street1.colorBet=“Red”
&其他成员是非法的,因为Hand::street1
不是静态的
类成员(我不是说它应该,拥有静态的
成员应该是一个逻辑决定,而不是让代码编译的事情)
您正在尝试修改的Hand
对象是什么,例如,street1betradeclicked
?你有手上的物品吗?您需要任何手动对象吗?你用那种方法创建它们吗?外面
我指出了错误,但在我看来,重要的问题不是代码没有编译,而是:
对于C++,你似乎没有把握,也许你应该从更简单的东西开始。
你没有一个清晰的逻辑设置
Hand::street1.colorBet=“Red”
&其他成员是非法的,因为Hand::street1
不是静态的
类成员(我不是说它应该,拥有静态的
成员应该是一个逻辑决定,而不是让代码编译的事情)
您正在尝试修改的Hand
对象是什么,例如,street1betradeclicked
?你有手上的物品吗?您需要任何手动对象吗?你用那种方法创建它们吗?外面
我指出了错误,但在我看来,重要的问题不是代码没有编译,而是:
对于C++,你似乎没有把握,也许你应该从更简单的东西开始。
你没有一个清晰的逻辑设置
当您像这样访问street1
时,street1
应该是Hand
的静态字段
如果每个Hand
都可以有自己的street1
对象,则应该访问对象的street1
字段,而不是静态字段。
如果希望Hand
的所有实例共享相同的street1
,则应将street1
设置为静态
<>你不理解这些概念,从阅读你的其他问题(),我可以看出你不知道C++足够写这个程序。我建议你先读一本关于C++的书,或者在开始你自己的项目之前,用其他的方式学习C++。
例如:
Hand hand1 = getRandomHand();
Hand hand2 = getRandomHand();
hand1.street1.colorBet="Red";
hand2.street1.colorBet="Black";
当您像这样访问street1
时,street1
应该是Hand
的静态字段
如果每个Hand
都可以有自己的street1
对象,则应该访问对象的street1
字段,而不是静态字段。
如果希望Hand
的所有实例共享相同的street1
,则应将street1
设置为静态
<>你不理解这些概念,从阅读你的其他问题(),我可以看出你不知道C++足够写这个程序。我建议你先读一本关于C++的书,或者在开始你自己的项目之前,用其他的方式学习C++。
例如:
Hand hand1 = getRandomHand();
Hand hand2 = getRandomHand();
hand1.street1.colorBet="Red";
hand2.street1.colorBet="Black";
street1
是Hand
的非静态成员,因此您需要通过Hand
对象访问它……您的意思是使street1
等成为静态的吗?street1
是Hand
的非静态成员,因此,您需要通过手
对象访问它…您的意思是使街道1
等成为静态的吗?首先是的,我没有把握,我这样做是为了学习。我正在使用hand对象来分析整个手,如hand.isFlush。也许街道应该是一个阶级,而不是一个阶级struct@user1846123我建议你先学习C++,然后再开始QT。最好的方法是读一本介绍性的书。@user1846123不管它是类还是结构。你说的是手
,但你在代码中没有手。您只定义了类,但没有创建任何对象。那么,您希望如何使用手牌?交易完成后,所发的牌将被定义为手牌。所以“handhand1(QVector);”。然后我可以运行“hand1.isFlush()”等。我现在正在尝试实现下注,即在所发的每张卡/街道上下注。我想“hand1.street1.colorBet”是有道理的。我很难建立起这样的逻辑。正如您所知,我对编程相当陌生。@user1846123所以现在放下Qt,拿起一本书。。。你为什么不接受合理的建议?首先是的,我没有把握,我这样做是为了学习。我正在使用hand对象来分析整个手,如hand.isFlush。也许街道应该是一个阶级,而不是一个阶级struct@user1846123我建议你先学习C++,然后再开始QT。最好的方法是读一本介绍性的书。@user1846123不管它是类还是结构。你说的是手
,但你在代码中没有手。您只定义了类,但没有创建任何对象。那么,您希望如何使用手牌?交易完成后,所发的牌将被定义为手牌。所以“handhand1(QVector);”。然后我可以运行“hand1.isFlush()”等。我现在正在尝试实现下注,即在所发的每张卡/街道上下注。我想“hand1.street1.colorBet”是有道理的。我很难建立起这样的逻辑。正如您所知,我对编程相当陌生。@user1846123所以现在放下Qt,拿起一本书。。。你为什么不接受合理的建议?