首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如果给一个只用一个次的枚举变量命名?一般是如何做的

2013-08-01 
如果给一个只用一个次的枚举变量命名?一般是怎么做的?本帖最后由 shendaowu 于 2013-07-22 16:06:59 编辑

如果给一个只用一个次的枚举变量命名?一般是怎么做的?
本帖最后由 shendaowu 于 2013-07-22 16:06:59 编辑 比如:

class people
{
    enum sex{ MALE, FEMALE };
    sex p_sex;
public:
    //...
};


很明显那个p_sex直接用sex更舒服一点,将sex改成其他的么?但是那样的话还是会感觉有点别扭。有什么两全其美的方法么?
除了
enum { sun,mon,tue,wed,thu,fri,sat }a,b,c;
还有其他的方法么?感觉这样可读性还是有点差。因为如果值很多的话,嵌到变量声明的地方可能会很不爽。
[解决办法]
用一次的, 不给他取名就行了.
类似的, struct 也行.

class people
{
enum {
  MALE,
  FEMALE
} p_sex;

public:
people()
{
p_sex = FEMALE;
}
};


[解决办法]
引用:
Quote: 引用:

用一次的, 不给他取名就行了.
类似的, struct 也行.

class people
{
enum {
  MALE,
  FEMALE
} p_sex;

public:
people()
{
p_sex = FEMALE;
}
};
实际的项目中有这么用的么?感觉这样的话,如果枚举的值很多的话,一个枚举可能会占用很多行,可能会影响阅读。
那就把枚举项写到一行上.


匿名的结构体变量, 十分常见.

[解决办法]
用匿名的enum,直接当作一种标识就行。类似#define
enum {MALE, FEMALE};
用的时候直接判断或者给int赋值
int sex = MALE;
if (sex == MALE)

[解决办法]
有那样用的, 成员函数接收的话, 就传递一个整数.
编译后那些枚举符号都变成整数了的.
[解决办法]
用匿名enum并不好,p_sex应该是一个private的成员,那么要想获得某个people对象的p_sex,就需要为people添加一个成员函数,而这个成员函数的返回值类型将无法声明。

匿名emun是C中常用的手段,目的是用来代替#define来定义整数类型的编译期常量,在C++中已经被int const取代。

一般来说,类型名应该使用抽象名词(词组),而变量名应该使用具体名词(词组),但这一条规则很难适用于所有情况。我的习惯是,类型名使用名词(词组),变量名使用带修饰语(形容词、物主代词、冠词)的名词(词组):


class people
{
    enum sex{ MALE, FEMALE };


    sex my_sex;
public:
    //...
};



我们公司的规定则是类型名每个单词首字母大写,变量名全小写:

class People
{
    enum Sex{ MALE, FEMALE };
    Sex sex;
public:
    //...
};

热点排行