我有一个Color类,它包含颜色的红色,绿色,蓝色和alpha通道的值。类构造函数允许您通过指定四个通道的值来创建新颜色。但是,为方便起见,我还想为程序员提供一些“预制”颜色。例如,而不是像
那样 DrawBox(new Color(255, 0, 0));
你可以说
DrawRectangle(Color::Red);
其中Color.Red是Color类中的Color实例。如何在Color类中声明这些Color实例?我确定这个技术有一个名字,但我不知道在网上寻求帮助时使用哪些搜索术语。
我没有使用任何内置或公开可用的类或库,因为这是创建基本图形堆栈的个人练习的一部分。
感谢您的帮助!
答案 0 :(得分: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
。