繁体   English   中英

我如何访问静态类成员?

[英]How can i access a static class member?

class Point
{
  private:
    int X, Y;  
  public:
    static const Point Origin;
    static const Point OneZero;
    static const Point ZeroOne;
};

我怎样才能获得原点?

对于静态,写:

Point::Origin

或者更完整的例子:

namespace Someplace {
int fun() {
  return Point::Origin.X;
}
}

虽然在类的范围内不需要限定Point::你可以简单地写Origin

在您的类中添加访问器(“getters”),如下所示:

class Point
{
  private:
    int X, Y;  
  public:
    static const Point Origin;
    static const Point OneZero;
    static const Point ZeroOne;

    int getX() {return X;}
    int getY() {return Y;}
};

然后你可以像这样访问Point的内容:

int originX = Origin.getX();

或者像这样:

Point myPoint;
int pointX = myPoint.getX();

另外,令人困惑的是Point类中有Point类的静态实例。 以下可能更符合您的要求:

class Point
{
  public:
    // Added a constructor that takes two arguments
    Point(int pointX, int pointY) {X = pointX; Y = pointY;}

    int getX() {return X;}
    int getY() {return Y;}
  private:
    int X, Y;  
};

int main()
{
  const Point Origin(0,0);
  const Point OneZero(1,0);
  const Point ZeroOne(0,1);

  int originX = Origin.getX();
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM