반응형
1. 생성자 다중 정의
- 반환자료가 없으며 다른 생성자의 값을 이관받는것이 가능하다.


2. 메서드
[ static 반환자료 클래스명 :: 함수명(), const ]
- 클래스에 속한 멤버 함수
- static 선인 시 정적 멤버 함수라고 명확히 분류
- const 선언 시 상수화 된 멤버로 분류
- virtual 선언 시 가상 함수로 분류

#메서드와 thiscall 호출규약
- this 포인터는 클래스의 실제 인스턴스에 대한 주소를 가리키는 포인터이다.
- 클래스 코드 수준(현재)에서 앞으로(미래) 사용자 코드에 등장할 실제 인스턴스의 주소를 접근 할 때 사용한다.
- 모든 메서드는 숨겨진 첫번째 인수로 this포인터를 전달한다.
#include <iostream>
using namespace std;
class MyData
{
public:
MyData() : data(0) {}
int getData() {
return data;
}
void setData(int data) {
this->data = data;
}
void setData(double data) = delete;
private:
int data;
};
int main()
{
MyData a;
a.setData(10);
cout << a.getData() << endl;
MyData b;
//b.setData(5.5);
cout << b.getData() << endl;
return 0;
}
#객체 자신을 가리키는 포인터
>> 시점이 중요하다. 제작자가 현재 만든 시점에서 미래의 사용자가 어떤 인스턴스를 만들지 알 수 없기 때문에, this 포인터를 사용한다.
( setData 함수가 호출될 때 넘어온 this의 실제값은 미래에 결정이 나는거고, 그 결정난 값을 이용해서 포인터로 참조해서 인스턴스 주소에 접근한 다음, 멤버에 접근한다. )
Q. 그렇다면 왜
반응형
'All Development' 카테고리의 다른 글
| C++) 상속 (1) | 2024.03.22 |
|---|---|
| C++) 객체 간 관계와 상속 (0) | 2024.03.21 |
| C++) C++의 특징 Part 1 (1) | 2024.01.08 |
| C++) C와 C++ 의 차이점 Part 2 (1) | 2024.01.05 |
| C++) C와 C++ 의 차이점 Part 1 (2) | 2024.01.04 |