从.cpp文件(C++)中的头文件读取枚举
Read an enum from a header file in a .cpp file (C++)
首先,对不起我的英语,我是法裔加拿大人。
我有一个家庭作业要做:一个单人纸牌游戏。问题是我被困在了必须的枚举步骤。我的牌需要使用枚举。
这是代码:
Carte.h:
#ifndef CARTE_H_
#define CARTE_H_
class Carte
{
public:
enum Sorte
{
coeur, pique, carreau, trefle
};
enum Valeur
{
as, valet, dame, roi
};
Carte (Sorte& pSorte, Valeur& pValeur);
Sorte lireSorte () const;
Valeur lireValeur () const;
bool ecrireSorte (Sorte& pSorte);
bool ecrireValeur (Valeur& pValeur);
static bool validerSorte (const Sorte& pSorte);
static bool validerValeur (const Valeur& pValeur);
private:
Sorte m_sorte;
Valeur m_valeur;
};
#endif /* CARTE_H_ */
这是Carte.cpp:
#include "Carte.h"
using namespace std;
Carte::Carte(Sorte& pSorte, Valeur& pValeur)
{
m_sorte = pSorte;
m_valeur = pValeur;
};
Carte::Sorte const lireSorte()
{
return m_sorte;
};
Valeur const lireValeur()
{
return m_valeur;
};
bool ecrireSorte(Carte::Sorte& pSorte)
{
bool donneeValide = validerSorte(pSorte);
if (donneeValide)
{
m_sorte = pSorte;
}
return donneeValide;
};
bool ecrireValeur(Valeur& pValeur)
{
bool donneeValide = validerValeur(pValeur);
if (donneeValide)
{
m_valeur = pValeur;
}
return m_valeur;
};
static bool validerSorte(const Sorte& pSorte)
{
return (pSorte == coeur || pSorte == pique || carreau || trefle);
};
static bool validerValeur(const Valeur& pValeur)
{
return ((pValeur >= 2 && pValeur <= 10) || (pValeur == as || pValeur == valet || pValeur == dame || pValeur == roi));
};
#endif /* CARTE_H_ */
每次我想访问Carte.cpp中的私有枚举(Sort m_Sorte和Valeur m_Valeur)时,都会出现以下错误:
无法解析符号"m_valeur"
或
未在此范围中声明"carte"
我真的不知道它为什么告诉我,我包含了.h文件,所以它不应该知道并能够使用我的枚举吗?我在网上搜索了很多,发现有人说我需要创建一个对象。然而,由于我的Carte.h和Carte.cpp是一个对象类,我如何创建一个Carte对象,我的Carte类甚至都没有编译?
如果我不清楚,再次表示感谢和抱歉!
cpp
文件中的方法未指定为类的方法。您需要在它们的定义中指定类名,例如:
Carte::Valeur Carte::lireValeur() const
一些返回的枚举类型也没有用类名限定,例如,本例中修复的枚举类型没有。返回的类型需要是完全限定的,因为方法的范围(它们所在的类)尚不清楚;或者,您可以使用替代函数语法,其中返回类型在方法名称之后指定,因此范围是已知的:
auto Carte::lireValeur() const -> Valeur
在我的示例中还修复了const
限定符用于方法(因此它位于方法名称之后),而不是返回类型。
相关文章:
- 正在将csv文件读取为双精度矢量
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 读取文件读取文件不正确
- 使用对象文件读取三角形数据网格
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 从文件读取,并写入函数C++中的数组
- 从对象C++中的文件读取内容时出现分段错误
- 从文件读取并通过矢量输出到控制台
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 简化文件读取的函数
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在 c++ 中将数据从文件读取到队列中
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 文件读取C++包括空格键
- 从文件读取时未将值推回矢量
- 从文件 C++ 读取时的无限循环
- 从同一文件读取和写入?
- 从.txt文件读取到C++中的双精度向量