객체배열 (동적/정적)초기화
위 클래스 처럼 생성자를 통해 매개변수를 주고 싶은 클래스가 있다고 할 때.
Test test( 1, 2 );
위 와 같이 값을 넣어주면 문제가 없지만
만약 이 클래스를 배열을 만들거나 동적할당을 하고 싶을 때 문제가 생긴다.
Test test[10]; //에러 발생, 디폴드 생성자 없음
Test test[2] = { Test( 1, 1 ), Test( 2, 2 ) }; //가능
Test* test = new Test[10]; //에러 발생, 디폴드 생성자 없음
해결하기 위해 아래와 같이 기본 생성자를 만들었다고 했을 때
Test* test = new Test[10];
10개의 객체가 만들어지긴 하지만 Test( int a, int b ) 를 호출 못했기 때문에
따로 함수를 만들거나 해서 배열 수 만큼 초기화를 시켜 주어야한다.
댓글
댓글 쓰기