0
我有一个结构Color
与枚举Color_type
。构造函数有一个类型为Color_type
的参数; Fl_Color
,FL_RED
和FL_BLUE
是一类和常量从FLTK:枚举器而不是类实例化的构造函数?
struct Color {
enum Color_type {
red = FL_RED,
blue = FL_BLUE,
// et cetera
};
Color(Color_type cc) :c(Fl_Color(cc)) { }
private:
Fl_Color c;
};
另一种类型都有一个成员函数来设置颜色,就像这样:
class Grid {
void set_color(Color col) { lcolor = col; }
private:
Color lcolor;
};
我希望这个函数被调用像这个:
my_grid.set_color(Color(Color::red));
即,像声明一样调用构造函数的枚举数。但是,它也可以这样工作:
my_object.set_color(Color::red);
为什么?这是合法的速记?
啊,我发现它的标准:“通过构造转换”(12.3.1) - 谢谢! –