获取/设置功能以更改文本和颜色

时间:2016-03-15 19:00:51

标签: c++ oop

我试图创建一个名为Label的类。标签是纯文本控件。应该能够通过get / set函数更改标签的文本和颜色。我认为这是通过get / set函数更改标签文本的一种方法。但我不确定颜色。任何建议都会得到满足。

<pre>

class Label
{
private:
    std::string text;
    int color;

public:
    Label();

    void SetText(string Ntext);
    void SetColor(int value);
    int GetColor();
    string GetText();
    ~Label();
};

<code>
<pre>
Label::Label()
{
}

string Label::GetText()
{
    return text;
}

void Label::SetText(string Ntext)
{
    text = Ntext;
}

int Label::GetColor()
{
    return color;
}

void Label::SetColor(int value)
{
    color = value;
}

Label::~Label()
{
}

<code>

2 个答案:

答案 0 :(得分:0)

您可以将颜色设为包含红色蓝色和绿色的数组。

int color[3];

void SetColor(int red, int green, int blue){
this->color[0] = red;
this->color[1] = green;
this->color[2] = blue;
}

答案 1 :(得分:0)

除了如何表示颜色的问题(实际上根据类的使用方式而有所不同,例如,它可以是redblack,{{1另外要考虑的是,在OOP方面,getter和setter并不好。

OOP的想法是隐藏对象内的数据并指示这些对象做一些有用的事情(发送消息)。

使用getter和setter打开内部实现(实际上就像将whitetext定义为公共属性一样。它听起来不错,对吧?但是实际上它就是这样,你可以阅读和修改它们就好像它们是公开的一样。

因此,更好的实现可能是将文本和颜色都作为构造函数参数。这样,标签就会显示足够的信息,因此您不需要设置setter / getters,如下所示:

color

有关getter / setter主题的更多信息: