상세 컨텐츠

본문 제목

접근제어

Maya API/C++

by hwano 2014. 1. 20. 23:21

본문

 

1.  접근 권한과 관련한 키워드는 public, protected, private가 있다.

protected, private 외부에서 멤버들에 접근할 수 없도록 만든다.

( 멤버라 함은 멤버함수와 멤버 변수를 합쳐서 부른 것 )

 

생생자와 소멸자도 접근 권한을 지정할 수 있는데

일반적으로는 public으로 한다.

 

 

1_1       protected는 자식 클래스의 멤버 함수로부터의 접근을 허용

           private는 자신의 멤버 함수 외에는 접근할 수 없다.

 

 

 

자신의 멤버 함수에서 접근

자식 클래스의 멤버 함수에서 접근

외부에서 접근

  private 멤버

O

X

X

  protected 멤버

O

O

X

  public 멤버

O

O

O

 

 

 

2.  맴버함수안에서는 private 밑에 있는 다른 멤버들이라도 얼마든지 접근 가능하다.

 

 

 

3. main안에서 public 함수를 부르고 그 함수안에서 private 함수를 부르면

클래스 외부에서도 간접적으로 나마 접근이 가능하다.

 

 

 

4.  클래스에서 모든 멤버 변수는 protected나 private로 만드는 것이 좋다.

 

 

class Point

{

private:

int x, y;  //  멤버 변수를 private로 만듬

public:

// 생성자들

Point();

Point( int initialX, int initialY );

Point( const Point& pt );

 

// 접근자

void SetX( int value ) { x = value; }

void SetY( int value ) { y = value; }

int GetX() { return x; };

int GetY() { return y; };

};

 

대신 3. 항목의 개념을 가져와서

일반 멤버함수이지만 private 멤버변수에 접근하기 위한 용도의 멤버함수라는 식으로

접근자 함수들을 만들어 주는 것이 좋다.

 

 

이렇게 만듬으로서 멤버 변수에 입력하는 값들의 범위를 정한다던가 할 수 있게 된다.

 

void SetX( int value )

{

if ( value < 0 )

x=0;

}

 

관련글 더보기