这似乎是一个简单的问题,但我无法理解解决方案是什么。我有一个屏幕类,其中对象基本上是x和y坐标,字体颜色等。一切正常,我可以实例化并使用这些对象。
有时我需要更改正在写入屏幕的字符串的颜色。这更像是一个“系统调用”,一旦完成,就会设置之后写的所有字符串。所以每次我写入屏幕时,我都被迫首先“设置文本颜色”。或者我呢?我有一个方法setValue:
objA->setValue("1234", RED);
当方法获得此调用时,它将设置屏幕写入的颜色。让我们说objA只是设置颜色RED。如果另一个对象需要写入屏幕,并且颜色相同,我不想再次将其写入屏幕,以减少对屏幕的写入次数。所以,基于最后一个对象的颜色,我想更新屏幕文本颜色(或不更新) 在C中,这当然是最邪恶的静态全局。我怎样才能在C ++中做类似的事情?
...谢谢
答案 0 :(得分:0)
我不完全确定你的目的是什么:IE,如果您使用的对象是代表屏幕或一些文本在屏幕内。我会假设后者。
听起来你只想要一个松散你的颜色值的地方,以便后续的调用没有指定颜色值。您应该查看类静态成员。在最简单的情况下,你只需要一个“颜色”类型的私有静态类成员,并让你的“setValue()”函数只是更新该变量。
(顺便说一句,如果我正确地阅读你的问题,“setValue”应该被称为“写文字”之类的东西。也许我误解了。分开你的“设定颜色”也是明智的。 class成一个公共静态成员函数。不是正确的东西,只是一个清晰的东西。)