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

어떻게 포인트 원본에 액세스 할 수 있습니까? 당신은 단순히 Origin를 쓸 수 있습니다 - 자격 Point::이 필요하지 않습니다정적 클래스 멤버에 액세스하려면 어떻게해야합니까?

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

있지만 클래스의 범위 내에서 :

Point::Origin 

또는 더 완전한 예 : 정적 쓰기를

+1

개인 회원에 액세스하려면 getter를 추가하십시오. 'getX()'와'int getY()' – andre

+1

ADD 클래스 메소드는 다음과 같습니다 :'getX() {return this-> x}' –

+0

"액세스"란 무엇을 의미합니까? 나는 또한 내가 의견을 downvote 수 있기를 바랍니다. –

답변

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(); 
}; 
관련 문제