2010-02-09 2 views
0

Java에서는 키워드 this을 사용하여 클래스의 변수에 액세스 할 수 있으므로 함수의 매개 변수에 대한 새 이름을 알아낼 필요가 없습니다.매개 변수로 숨겨진 데이터 멤버 액세스

자바 스 니펫 : C++에서 비슷한 일이

private int x; 

public int setX(int x) { 
    this.x = x; 
} 

있습니까? 그렇지 않다면 함수 매개 변수의 이름을 지정하는 것이 가장 좋습니다.

+0

당신이'that'를 시도? –

답변

4

당신이 this를 통해 멤버에 액세스 할 경우, 포인터의이 무효 같은 '설정'기능을, 그래서 this->x을 사용합니다.

+4

감사합니다. Google도 대답을 찾았습니다. hehe는 질문을 적어두기 위해 2-3 분과 비교되는 1min처럼 나를 데려 갔다. .. – starcorn

+2

그 다음 배웠던 수업? ;) 검색 버튼을 절대로 과소 평가하지 마십시오. – Mizipzor

0
private int x; 

public int setX(int newX) { 
    x = newX; 
    return x; //is this what you're trying to return? 
} 

대부분의 경우에, 나는 IE가

public: 
void setX(int newX) { 
    x = newX; 
} 
+0

아니요 매개 변수의 값을 사용하여 데이터 멤버를 설정하려고합니다. 어쨌든 여러분은'this-> x = x; '라고 쓸 필요가 있다고 생각합니다. – starcorn

+0

어, 저는 ** 데이터 멤버를 매개 변수 값으로 설정하고 있습니다. this-> x를하는 것은 불필요합니다. 그러나 'this'포인터를 올바르게 사용하는 방법을 배웠으므로 기쁩니다. –

+0

sry, 나는 그것을 완전히 읽지 않았다 ^^; – starcorn

1
class Example { 
    int x; 
    /* ... */ 
public: 
    void setX(int x) { 
     this->x = x; 
    } 
}; 

아, 그리고 생성자 초기화 목록에서, 당신은 this-> 필요하지 않습니다 : 그래도, 그 경계 나쁜 스타일을 생각 하는데요

Example(int x) : x(x) { } 

.

+0

나 또한 다소 나에게 3 자 회신을 상기시켜줍니다. 즉, 작성하는 방법을 기억하기가 어렵습니다. – starcorn

0

코딩 규칙에 따라 다릅니다.

구글의 C++ style guide에서

:

void set_some_var(int var) { some_var_ = var; } 
int some_other_var_;