c ++:初始化成员结构的静态字段的正确方法

卡洛斯·罗梅罗(Carlos Romero)

我懂了:

// mouse.h
class Mouse {
  private:
    struct Pos {
      static GLfloat x;
      static GLfloat y;
    };    
    static Pos last;
}

和这个:

// mouse.cpp
// 1)
Mouse::Pos Mouse::last = {};
// 2)
Mouse::Pos Mouse::last = { 0.0, 0.0 };
// 3)
Mouse::last.x = 0.0f;
Mouse::last.y = 0.0f;

1)2)并且3)是我在初始化那个东西的企图。我知道标头应声明laststatic,而源应将其初始化,但是我的所有尝试都出了点问题。有人可以告诉我做这种事情的正确方法吗?我是否错过了一些非常重要的观点?这是胡说八道吗?重要的是字段是静态的。谢谢。

何塞·帕尔玛(Jose Palma)

您无需将Pos内容声明为静态。

// mouse.h

class Mouse {
  private:
    struct Pos {
      GLfloat x;
      GLfloat y;
    };    
    static Pos last;
}

Mouse::Pos Mouse::last = { 0.0, 0.0 };

这也应该工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章