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;
};