2013-02-28 144 views
1
class Point 
{ 
    private: 
    int X, Y; 
    public: 
    static const Point Origin; 
    static const Point OneZero; 
    static const Point ZeroOne; 
}; 

我如何访问点起源?如何访问静态类成员?

+1

添加getters访问私人会员。 'getX()'和'int getY()' – andre 2013-02-28 16:16:41

+1

ADD类的方法如:'getX(){return this-> x}' – 2013-02-28 16:16:46

+0

“access”是什么意思?我也希望我可以减少评论。 – 2013-02-28 16:17:14

回答

3

为静态,写:

Point::Origin 

或更完整的示例:

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

虽然资格Point::是没有必要的时候类范围内 - 你可以简单地写Origin

1

添加存取( “干将”)将类,如下所示:

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

然后你就可以访问点的内容是这样的:

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