如何访问静态类成员?

How can i access a static class member?

本文关键字:静态类 成员 访问 何访问      更新时间:2023-10-16
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

按如下方式为类添加访问器("getter "):

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();
};