2

我有一个 Color 类,它保存颜色的红色、绿色、蓝色和 alpha 通道的值。类构造函数允许您通过指定四个通道的值来创建新颜色。但是,为方便起见,我还想为程序员提供一些“预制”颜色。例如,而不是像

DrawBox(new Color(255, 0, 0));

你可以说

DrawRectangle(Color::Red);

其中 Color.Red 是位于 Color 类中的 Color 的一个实例。如何在 Color 类中声明这些 Color 实例?我确信这种技术有一个名称,但是当我在网上寻求帮助时,我不知道要使用什么搜索词。

我没有使用任何内置或公开可用的类或库,因为这是创建基本图形堆栈的个人练习的一部分。

谢谢你的帮助!

4

1 回答 1

6

首先,避免使用new. 您可以使用Color简单的值类型。

现在作为您问题的答案,是的,您可以这样做:

//color.h

typedef unsigned char byte;

class Color
{
    public:
        //declaration
        const static Color Red;
        const static Color Green;
        const static Color Blue;
    public:

       Color(byte red, byte green, byte blue);
};

//define the static members in color.cpp file
#include "color.h"

const Color Color::Red(255,0,0);
const Color Color::Green(0,255,0);
const Color Color::Blue(0,0,255);

然后Color::Red随心所欲地使用。

于 2013-01-18T20:35:04.730 回答