C++开发初级


1276 浏览 5 years, 10 months

8 类内的枚举类型

版权声明: 转载请注明出处 http://www.codingsoho.com/

类内的枚举类型

如果想在类内定义许多常量,应该使用枚举类型而不是一组#define。例如,可以在SpreadsheetCell类中支持单元格颜色,如下所示:

class SpreadsheetCell
{
 public:
  typedef enum {Red=1, Green, Blue, Yellow} Colors;
  void setColor(Colors color);
protected:
  Colors mColor = Red;
  //Colors mColor;  // Pre-C++11
};

代码取自 SpreadsheetCellColors\SpreadsheetCell.h

setColor()方法的实现简单明了:

void SpreadsheetCell::setColor(Colors color)
{
    mColor = color;
}

代码取自 SpreadsheetCellColors\SpreadsheetCell.cpp

可以通过下面的方式使用这个新方法:

  SpreadsheetCell myCell(5);
  myCell.setColor(SpreadsheetCell::Blue);

代码取自 SpreadsheetCellColors\SpreadsheetCellTest.cpp

使用枚举类型要比使用下面的#define好:

#define RED 1
#define GREEN 2
#define YELLOW 3

class SpreadsheetCell
{
 public:
  void setColor(Colors color);
protected:
  int mColor;
};