본문 바로가기
[ C++ ]/- C++ 문법공부

C++ 8장 [포인터 객체]

by MRG 2022. 10. 20.
728x90
반응형

▣ 안녕하세요.

이번장에서는 포인터로 객체를 다루는 코드를 공부해보도록 하겠습니다.

포인터는 주소를 저장하는 변수입니다.

C언어의 포인터의 개념과 동일합니다.

혹시 포인터를 모르시는 분은 C언어 공부에 포인터 부분을 꼭 공부해보세요.

이제 포인터 객체를 코드를 작성하며 공부해보도록 하겠습니다.

 

▣ 먼저 기본적인 클래스를 생성해주는 코드와 멤버 함수 코드를 작성해주세요. 

그리고 메인 함수에서  Calculator num; 로 객체를 선언합니다.

그런 다음에 포인터를 선언합니다.

Calculator* p = num(자료형 변수 이름 = 주소)의 형태로 코드를 작성합니다. 

변수를 선언하는 코드와 동일합니다.

그리고 포인터를 이용하여 멤버 함수를 호출해보겠습니다.

포인터에 있는 멤버함수를 접근하기 위해서.(점) 연산자와 ->연산자를 사용해야 합니다.

p->sum(10) 코드는 주소로 접근하여 멤버 함수를 호출하는 경우

(*p). sum(20) 코드는 p의 값을 접근하여 함수를 호출하는 경우를 의미합니다.

둘 다 동일한 방법이지만 조금 다른 접근입니다. 

저장을 하고 디버그를 해보면 각자 객체에 있는 멤버 함수를 접근하여 호출한 걸 확인할 수 있습니다.

 

728x90

 

▣ 이번에는 배열로 객체를 선언하고 접근하는 코드를 공부해보겠습니다. 

Calculator num [2]로 객체를 배열로 선언하겠습니다. 

기본 배열을 선언하는 것과 동일합니다.

그리고 Calculator* p = num처럼 아까와 동일하게 주소를 대입하는데 여기서는 & 기호가 빠진 걸 볼 수 있습니다.

배열의 이름은 배열의 첫 번째 주소, 0번째를 의미합니다.

이렇게 코드를 작성하고 포인터에 마우스를 올려두면 배열의 첫 번째 주소를 의미한다고 나옵니다. 

 

 

▣ 코드를 작성하고 저장하고 디버그를 해서 출력해보면

p == &p[0] 둘 다 주소가 같은걸 확인할 수 있습니다.

그리고 그걸 접근하여 값을 출력하는 것도 확인해보면 값이 동일한 걸 확인할 수 있습니다.

그리고 p는 주소를 의미하고 p [0], p [1]는 각각 배열의 값을 의미하기 때문에 

->연산자와. 연산자 각각 다른 연산자로 접근하는 것도 확인할 수 있습니다.

728x90
반응형

'[ 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

댓글