2

色の赤、緑、青、およびアルファチャネルの値を保持するクラスColorがあります。クラスコンストラクターを使用すると、4つのチャネルの値を指定して新しい色を作成できます。ただし、便宜上、プログラマーが利用できる「既成の」色もいくつか用意したいと思います。たとえば、次のようなものを持っている代わりに

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 に答える