c++ - 在多个头文件中使用枚举状态的问题
问题描述
我想有一个枚举类,它的对象在我的程序的头文件中声明。我需要在程序期间多次修改状态,但它不允许我这样做。当我运行程序时,它说枚举类存在多重定义错误。
我将对象更改为静态并且程序可以工作(静态组合状态;),但在尝试将状态分配给其他东西时,它并没有改变状态。在另一个 cpp 文件中,我尝试以这种方式修改状态(状态 = 组合::HIGHCARD)
#ifndef POKER_H_
#define POKER_H_
enum class combinations {
HIGHCARD, ONEPAIR, TWOPAIRS, THREEOFAKIND, STRAIGHT,
FLUSH, FULLHOUSE, FOUROFAKIND, STRAIGHTFLUSH, ROYALEFLUSH
};
combinations state;
void shuffle(int[][13]);
void assign(const char *[], const char *[], int[][13], const char *[], const char *[]);
int deal(const char *[], const char *[], const char *[]);
void printHand(const char *[], const char *[]);
void printWinningMassege(const int, const int, combinations, combinations);
bool isRoyalFlush(const char *[], const char *[], const char *[]);
int isStraightFlush(const char *[], const char *[], const char *[]);
int isFourOfaKind(const char *[], const char *[]);
int isFullHouse(const char *[], const char *[]);
int isFlush(const char *[], const char *[], const char *[]);
int isStraight(const char *[], const char *[]);
int isThreeOfaKind(const char *[], const char *[]);
int isTwoPair(const char *[], const char *[]);
int isPair(const char *[], const char *[]);
int isHighCard(const char *[], const char *[], const char *[]);
#endif // !POKER_H
Severity Code Description Project File Line Suppression State
Error LNK2005 "enum combinations state" (?state@@3W4combinations@@A) already defined in Poker.obj PokerDeals C:\Users\BoB\source\repos\PokerDeals\main.obj 1
解决方案
推荐阅读
- javascript - 是否可以将标记的模板文字与保存为常量的模板文字一起使用?
- javascript - 如何将 C# 中的 bool 映射到 JScript 中的布尔变量?自动转换将布尔值 true 转换为字符串“True”
- azure-ad-graph-api - 在 Azure Graph API 中获取更新注释
- python - 在 Keras 中显示“y”的预测值和对应的实际“x”值
- javascript - 所有 axios 请求都在一台机器上停止,但不是隐身
- javascript - 如何将垫对话框注入服务?
- vue.js - 从父级 Vuejs 打开折叠
- c# - 当我执行 SetParent() 时,我的孩子远离父母
- java - OpenHTMLToPDF 构建非漏洞文档
- sap - HANA CDS 中 FIRST_VALUE 函数的语法错误