如何在其内部创建类的(静态常量?)实例(即 Color 类)?

发布于 2024-12-17 07:26:44 字数 586 浏览 0 评论 0原文

我正在尝试创建一个颜色类。例如:

class Color
{
public:
  float r, g, b, a;
  Color(float r_, float g_, float b_, float a_);
...
}

为了方便起见,我想将类的实例包含为类的一部分,这样我就不需要为常见颜色指定 rgba 值:

image.setPixel(100, 100, Color::Red);

但是,我不知道正确的语法是什么这是。我在谷歌上搜索了一段时间,但没能找到这个方法的术语:(。我之前在其他库中见过它,所以我认为这是可能的。我认为它有被声明为静态常量,但我不确定这一点:

class Color
{
public:
  static const Color Red;
...
}

const Color::Color Red = Color(255, 0, 0, 255);

但我得到一个

错误提示 Color::Color 是无效类型

我做错了什么?

I'm trying to create a class for colors. Something like:

class Color
{
public:
  float r, g, b, a;
  Color(float r_, float g_, float b_, float a_);
...
}

And for convenience I would like to include instances of the class as part of the class so that I don't need to specify the rgba values for common colors as such:

image.setPixel(100, 100, Color::Red);

However, I don't know what the correct syntax for this is. I've been searching on Google for a while and I haven't been able to find the term for this method :(. I've seen it done in other libraries before, so I think it's possible. I'm thinking it has to be declared as a static constant, but I'm not sure about this:

class Color
{
public:
  static const Color Red;
...
}

const Color::Color Red = Color(255, 0, 0, 255);

But I get an

error saying Color::Color is an invalid type

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我闹别瞎闹 2024-12-24 07:26:44

红色的是会员,应该是:

const Color Color::Red = Color(255, 0, 0, 255);

Red is the member, it should be:

const Color Color::Red = Color(255, 0, 0, 255);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文