2011년 4월 13일 수요일

cpp] 예제로 바로 알아보는 c와 c++ - 40

#include <iostream.h>
class A {
 int * p;
public:
 A();
 ~A();
};
A::A()
{
 cout << "Constructor\n";
// p = new int;
}
A::~A()
{
 cout << "Destructor\n";
// delete [] p;
}
void main(void)
{
 A *p;

 p = new A[5];

 cout << *(int*)((char*)p-20) <<endl; // -4 -16 : -4부분까지 포함한 총 사이즈가 들어 있음. |총사이즈
|   |   |개수|객체1|객체2|객체3|객체4|객체5|
 //생성자 5번. 소멸자를 호출하기 위해서는 오브젝트의 개수가 필요함.
 cout << *(int*)((char*)p-4) <<endl; //오브젝트의 개수가 들어있음.

 delete [] p; //이 때만 개수를 읽어서 소멸자를 호출해줌. 동적 오브젝트 생성시 [] 반드시 붙여야함.
}

요거거덩.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

대학원생의 투고 지도 ④ (완결) — 논문의 수준이란 무엇인가: 사다리와 사분위, 첫 논문 전략

완결편이다. "논문 수준"이라는 말을 해부하고, 에듀테크 석사생의 첫 논문 전략으로 마친다. 학위논문과 학술지 논문은 다른 장르다 먼저 가장 흔한 혼동부터. 학위논문(thesis)은 "내가 연구를 수행할 줄 안다...