객체 포인터
- 객체에 대한 포인터 (C언어 포인터와 동일)
- 객체의 주소 값을 가지는 변수
포인터로 멤버 접근
- 객체포인터 -> 멤버
객체 배열 선언
1. 객체 배열을 위한 공간 할당
2. 배열의 각 원소 객체마다 생성자 실행(매개 변수 없는 생성자 호출) - 기본 생성자
->매개 변수있는 생성자 호출 불가능
객체 배열 초기화
CircleArray[3] = {Circle(10), Circle(20), Circle() }; 방식으로도 배열을 초기화할수있다.
정적 할당(static)
- 변수 선언을 통해 필요한 메모리 할당 ex) int i;, int n[5];
동적 할당(dynamic) (할당 후 반환이 중요)
- 필요한 양이 예측 안될 경우, 프로그램 작성 중이 아닌 실행 중 운영체제로 부터 할당
- 힙(heap)으로 할당
C에서는 malloc()/free() 라이브로리 함수 사용
C++에서는 new()/delete() 연산자 사용
- 사용법
데이터타입 *포인터변수 = new 데이터타입;
delete 포인터변수;
배열의 동적 할당 및 반환
1. int* p = new int [5];
2. delete[] p;
동적할당 시 초기화
int *p = new int(20); //20으로 초기화된 int 타입 할당
단, 배열은 동적 할당 시 초기화 불가능
this
- 포인터, 객체 자기 포인터 (객체 자신의 주소값)
- 멤버 함수 내에서만 사용 가능
- 컴파일러가 선언한 변수다.
- 매개변수 이름과 멤버 변수 이름이 같은 경우 사용
- 멤버 함수가 객체 자신의 주소 리턴할 때 사용
- static 멤버 함수에서 this 사용 불가
'학교수업' 카테고리의 다른 글
사물인터넷의이해 4주차 (0) | 2021.09.28 |
---|---|
웹개발기초 4주차 (0) | 2021.09.26 |
가상현실프로그래밍 3주차 (0) | 2021.09.24 |
정보보호개론 3주차 (0) | 2021.09.23 |
임베디드기초 3주차 (0) | 2021.09.22 |