。공부 。

<C++> 객체 포인터 배열

kyoe 2007. 12. 1. 00:16
개체 포인터 배열이란
객체를 가르킬수있는 포인터를 멤버로 지니는 배열이다.

- 객체 포인터 배열 예제 -
class Happy{
    int x;
    int y;
public:
    Happy(int _x,int _y){
        cout<<"test"<<endl;
        x=_x;
        y=_y;
    }
};

int main(){
    Happy *arr[5];      //Happy객체를 가르킬수있는 포인터배열 5개선언, 스택영역에 총 20바이트의 메모리를 할당하게된다.

    for(int i=0; i<5; i++){
        arr[i] = new Happy(i*2,i*3);      //5개의 포인터배열의 객체를 동적 생성하고 있다.
    }
    return 0;
}
위 예제를 실행하면 아래와 같이 객체가 생성된다.
      스택영역                    힙영역   
arry[0] : Hyppy*   -----> Hyppy객체
                      .                           
                      .                           
arry[4]: Happy*    -----> Hyppy객체
Happy 객체를 를 가르킬수 있는 포인터 배열 5개를 선언후 new Happy(i*2,i*3)명령에의해  Happy객체를  힙영역에 생성한다 (인자값으로 i*2,i*3을 갖을수있는 생성자를 호출 객체 초기화)
동적할당된 객체를 Happy포인터배열에 힙영역에 할당된 객체의포인터의 주소를 넣어줌으로써 하나의 객체가 만들어진다.
for문으로 5개의 객체를 초기화하고 할당한다.