# Language/C++

[C++] 객체 배열

객체 배열

 

 

 

1. 기본 생성자로 객체를 생성하는 객체 배열

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Circle circleArray[3]; // Circle 객체 3개 짜리 객체 배열 생성
 
circleArray[0].setRadius(10); // 객체 배열의 객체 멤버 접근
 
 
 
Circle *p;
 
= circleArray // 배열이름이  곧 포인터
 
for(int i=0; i<3; i++){
 
cout << "원의 면적 : " << p->getArea(); << endl;
 
p++;
 
}
 
 
cs

 

 

객체 배열 선언문은 반드시 기본 생성자를 호출

 

포인터에 배열 이름을 저장하고, 포인터의 증감을 통해 원소 접근이 가능

 

배열이 소멸될 때, 모든 원소 객체가 소멸되고, 높은 인덱스부터 원소 객체가 소멸 (각각 소멸자 호출)

 

 

 

 

 

Tip 포인터로 객체 배열을 다루는 다양한 사례

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Circle circleArray[3]; // Circle 객체 3개 짜리 객체 배열 생성
 
circleArray[0].setRadius(10); // 객체 배열의 객체 멤버 접근
 
 
 
Circle *p;
 
= circleArray // 배열이름이  곧 포인터
 
for(int i=0; i<3; i++){
 
cout << "원의 면적 : " << p->getArea(); << endl;
 
p++;
 
}
 
 
cs

 

 

 

 

 

 

2. 초기화된 객체로 객체 배열을 생성

 

 

 

 

Circle circleArray[3] = { Circle(10), Circle(20), Circle(30) };

 

728x90

'# Language > C++' 카테고리의 다른 글

[C++] this 포인터  (0) 2019.01.15
[C++] 메모리 누수 (memory leak)  (0) 2019.01.15
[C++] 동적 메모리 할당, 반환 ( new, delete 연산자)  (0) 2019.01.15
[C++] 객체 포인터  (0) 2019.01.04
[C++] 문자열 (C-string, string)  (0) 2019.01.01
[C++] const의 개념  (0) 2018.12.21
[C++] namespace 와 std  (0) 2018.12.21