▣ 안녕하세요.
이번장에서는 포인터로 객체를 다루는 코드를 공부해보도록 하겠습니다.
포인터는 주소를 저장하는 변수입니다.
C언어의 포인터의 개념과 동일합니다.
혹시 포인터를 모르시는 분은 C언어 공부에 포인터 부분을 꼭 공부해보세요.
이제 포인터 객체를 코드를 작성하며 공부해보도록 하겠습니다.
▣ 먼저 기본적인 클래스를 생성해주는 코드와 멤버 함수 코드를 작성해주세요.
그리고 메인 함수에서 Calculator num; 로 객체를 선언합니다.
그런 다음에 포인터를 선언합니다.
Calculator* p = num(자료형 변수 이름 = 주소)의 형태로 코드를 작성합니다.
변수를 선언하는 코드와 동일합니다.
그리고 포인터를 이용하여 멤버 함수를 호출해보겠습니다.
포인터에 있는 멤버함수를 접근하기 위해서.(점) 연산자와 ->연산자를 사용해야 합니다.
p->sum(10) 코드는 주소로 접근하여 멤버 함수를 호출하는 경우
(*p). sum(20) 코드는 p의 값을 접근하여 함수를 호출하는 경우를 의미합니다.
둘 다 동일한 방법이지만 조금 다른 접근입니다.
저장을 하고 디버그를 해보면 각자 객체에 있는 멤버 함수를 접근하여 호출한 걸 확인할 수 있습니다.
▣ 이번에는 배열로 객체를 선언하고 접근하는 코드를 공부해보겠습니다.
Calculator num [2]로 객체를 배열로 선언하겠습니다.
기본 배열을 선언하는 것과 동일합니다.
그리고 Calculator* p = num처럼 아까와 동일하게 주소를 대입하는데 여기서는 & 기호가 빠진 걸 볼 수 있습니다.
배열의 이름은 배열의 첫 번째 주소, 0번째를 의미합니다.
이렇게 코드를 작성하고 포인터에 마우스를 올려두면 배열의 첫 번째 주소를 의미한다고 나옵니다.
▣ 코드를 작성하고 저장하고 디버그를 해서 출력해보면
p == &p[0] 둘 다 주소가 같은걸 확인할 수 있습니다.
그리고 그걸 접근하여 값을 출력하는 것도 확인해보면 값이 동일한 걸 확인할 수 있습니다.
그리고 p는 주소를 의미하고 p [0], p [1]는 각각 배열의 값을 의미하기 때문에
->연산자와. 연산자 각각 다른 연산자로 접근하는 것도 확인할 수 있습니다.
'[ C++ ] > - C++ 문법공부' 카테고리의 다른 글
C++ 10장 [this 포인터] (0) | 2022.10.27 |
---|---|
C++ 9장 [메모리 할당] (0) | 2022.10.26 |
C++ 7장 [인라인 함수] (0) | 2022.10.13 |
C++ 6장 [클래스4] (0) | 2022.10.12 |
C++ 5장 [클래스3] (0) | 2022.10.07 |
댓글