메서드
메서드(=멤버함수)의 원형
- static 예약어: 정적 메서드 , 쓰기 불가능
- const 예약어: 상수형, 상수화된 메서드 , this 포인터 접근 불가능
- 메서드 = 인터페이스함수라고 해도됨
static 반환형 클래스이름::함수이름(매개변수) const;
멤버변수에 접근하는 정확한 방법
this->클래스명::멤버변수명 (소속을 정확히 명시할 수 있다.)
멤버변수명만 쓰더라도 내부적으로 this가 붙어서 컴파일된다.
class CMyData{
public:
void PrintData(){
cout << this->CMyData::m_nData << endl; //정확한 표현
cout << m_nData << endl; //m_nData라고만 쓰더라도 실제로 'this->m_nData'로 컴파일된다.
}
private:
int m_nData =10;
}
int main(){
CMyData c;
c.PrintData();
}
this 포인터
제작자가 작성 중인 클래스의 실제 인스턴스에 대한 주소를 가리키는 포인터. 실제 생략되어 전달된다.
class CMyData{
public:
void PrintData(/*CMyData *pData*/){ //생략되어 전달된다. (실제 이렇게 코드를 작성하면, 문법에어긋난다.)
/*CMyData * this = pData;*/ //눈에보이지 않지만 this가 생성되는 것이다.
cout << this->CMyData::m_nData << endl; //정확한 표현
cout << m_nData << endl; //m_nData라고만 쓰더라도 실제로 'this->m_nData'로 컴파일된다.
}
private:
int m_nData =10;
}
int main(){
CMyData c;
c.PrintData();
}
'◼️C++' 카테고리의 다른 글
[C++] 상수형 메서드, mutable, const_cast< > (0) | 2023.09.17 |
---|---|
[C++] 클래스 요구사항에 맞게 코드 구현하기 (0) | 2023.09.17 |
[C++] 명시적 디폴트 생성자 (0) | 2023.09.17 |
[C++] 생성자 다중정의 (0) | 2023.09.17 |
[C++] 참조형식 멤버변수 초기화 (생성자초기화목록 이용) (0) | 2023.09.17 |