C++ Enum in struct error for definition
C++ Enum in struct error for definition
你好,我是 C++ 的新手。
对于我的项目,我需要使用类似于 C# 示例的枚举值。
我的结构
struct Rows
{
string name;
bool primaryKey;
int lenght;
string defined;
MyLDC::Attributes attrib;
bool Nullable;
bool AutoIncrement;
string comment;
};
Rows rw;
Rows* row = &rw;
MyLDC::属性
enum Attributes
{
_BINARY = 0x26,
_UNSIGNED = 0x27
};
我的示例函数
void MyLDC::CreateTable(string tablename,string primaryKey)
{
//Simple Row Implementation
row->name = "Example Row";
row->AutoIncrement = true;
row->primaryKey = true;
row->comment = "Example Row";
row->attrib = Attributes::_UNSIGNED;
我在 row->attrib = Attributes::_UNSIGNED;
上遇到错误
不知道这个错误。
谁是正确的解决方案?
enum Attributes
{
_BINARY = 0x26,
_UNSIGNED = 0x27
};
...
row->attrib = Attributes::_UNSIGNED;
我的心理调试能力;) 告诉我问题是 _UNSIGNED
符号不在 Attributes
的范围内,所以你应该可以这样做:
row->attrib = _UNSIGNED;
对于范围枚举,您可能希望使用 C++11 的 enum class
。
P.S. 另请注意,_Upper
(下划线后跟大写字母)名称是 保留的实现,不应在您的代码中使用。
你好,我是 C++ 的新手。 对于我的项目,我需要使用类似于 C# 示例的枚举值。
我的结构
struct Rows
{
string name;
bool primaryKey;
int lenght;
string defined;
MyLDC::Attributes attrib;
bool Nullable;
bool AutoIncrement;
string comment;
};
Rows rw;
Rows* row = &rw;
MyLDC::属性
enum Attributes
{
_BINARY = 0x26,
_UNSIGNED = 0x27
};
我的示例函数
void MyLDC::CreateTable(string tablename,string primaryKey)
{
//Simple Row Implementation
row->name = "Example Row";
row->AutoIncrement = true;
row->primaryKey = true;
row->comment = "Example Row";
row->attrib = Attributes::_UNSIGNED;
我在 row->attrib = Attributes::_UNSIGNED;
上遇到错误不知道这个错误。 谁是正确的解决方案?
enum Attributes { _BINARY = 0x26, _UNSIGNED = 0x27 }; ... row->attrib = Attributes::_UNSIGNED;
我的心理调试能力;) 告诉我问题是 _UNSIGNED
符号不在 Attributes
的范围内,所以你应该可以这样做:
row->attrib = _UNSIGNED;
对于范围枚举,您可能希望使用 C++11 的 enum class
。
P.S. 另请注意,_Upper
(下划线后跟大写字母)名称是 保留的实现,不应在您的代码中使用。