객체 배열 선언 및 활용
객체 배열은 원소가 객체라는 점을 빼고, int, char 등 기본 타입의 배열을 선언하고 활용하는 방법과 동일.
#include <iostream>
using namespace std;
class Circle{
int radius;
public :
Circle(){radius=1;}
Circle(int r){radius=r;}
void setRadius(int r){radius=r;}
double getArea();
};
double Circle::getArea(){
return 3.14*radius*radius;
}
int main(){
Circle circleArray[3];
circleArray[0].setRadius(10);
circleArray[1].setRadius(20);
circleArray[2].setRadius(30);
for (int i=0;i<3;i++){
cout << "Circle"<<i<<"의 면적은"<<circleArray[i].getArea()<<endl;
}
Circle *p;
p=circleArray;
for(int i=0;i<3;i++){
cout << "Circle"<<i<<"의 면적은"<<p->getArea()<<endl;
p++;
}
}
위 코드는 생능 출판사의 명품 C++ 프로그래밍 p.161의 코드입니다.
-객체 배열 선언문은 기본 생성자를 호출한다.
-객체 배열 사용
배열의 각 원소 객체는 [] 연산자로 구분 한다.
-배열 소멸과 소멸자
함수가 종료하면 함수 내에 선언된 배열도 소멸된다. 배열이 소멸되면, 모든 원소 객체가 소멸되며 각 원소 객체마다 소멸자가 호출된다. main()함수가 종료하면 circleArray 배열이 소멸되며, 높은 인덱스에서부터 원소 객체가 소멸되고, 각 객체마다 ~Circle() 소멸자가 실행된다.
객체 배열 초기화
객체 배열을 생성할 때 생성자를 사용하여 원소 객체를 초기화 가능하다.
Circle circleArray[3]={Circle(10), Circle(20), Circle()};
다차원 객체 배열
- 2차원, 3차원 등 다차원 객체 배열을 만들 수 있다.
Circle circles[2][3];
circles[0][0].setRadius(1);
circles[0][1].setRadius(2);
circles[0][2].setRadius(3);
circles[1][0].setRadius(4);
circles[1][1]setRadius(5);
circles[1][2].setRadius(6);
'Programming Language > C++' 카테고리의 다른 글
| this의 기본 개념 (0) | 2023.04.07 |
|---|---|
| 객체 배열의 동적 생성 및 반환 (0) | 2023.04.06 |
| C++ 동적 메모리 할당 및 반환 (0) | 2023.04.06 |
| C++ 객체 포인터와 객체 배열, 객체의 동적 생성 (0) | 2023.04.06 |
| C++ 클래스와 객체 (0) | 2023.04.06 |