객체 포인터 배열 : 객체를 가리킬 수 있는 포인터로 구성이 되어 있는 배열
예제(new와 delete를 이용해서 어떻게 객체를 동적으로 생성 및 소멸하는지 알게 될것.)
#include <iostream> class Point{ int main() for(int i=0; i<5; i++) |
"new Point(i*2, i*3)"의 의미
:i*2와 i*3을 인자로 받을 수 있는 Point 클래스의 생성자를 호출하면서, Point 객체를 생성하라
=> 힙 영역에 생성. 생성된 객체의 주소 값이 Point*(Point 클래스의 포인터)형으로 반환될 것.
C에서 사용한 malloc 함수를 이용해서 객체 생성을 할 수 있을까? 없다!!
malloc 함수는 함수 호출 시 전달되는 인자만큼 단순히 메모리 공간만 할당하는 함수이기 때문이다. 즉 객체의 크기만큼 메모리 공간을 할당할 수는 있을 지라도, 생성자 호출은 이뤄지지 않는다. C++에서 이야기하는 객체의 조건을 만족시키려면, 생성자 호출은 반드시 이뤄져야 한다.
malloc 함수는 함수 호출 시 전달되는 인자만큼 단순히 메모리 공간만 할당하는 함수이기 때문이다. 즉 객체의 크기만큼 메모리 공간을 할당할 수는 있을 지라도, 생성자 호출은 이뤄지지 않는다. C++에서 이야기하는 객체의 조건을 만족시키려면, 생성자 호출은 반드시 이뤄져야 한다.
'Language > C++' 카테고리의 다른 글
복사생성자가 호출되는 시점 (0) | 2011.03.07 |
---|---|
깊은 복사(Deep Copy) ..(const Person& p) 명시적 정의 (0) | 2011.03.07 |
생성자와 동적할당 (0) | 2011.03.04 |
new / delete (0) | 2011.03.03 |
포인터를 이용한 Call-By-Reference / 레퍼런스를 이용한 Call-By-Reference (0) | 2011.03.03 |