안녕하세요 만해입니다.
요즘 메모리 관리 부분에 관련된 자료를 찾아서 보다가
CPP 98 Standard를 구해서 보고 잇는데요
도저히 무슨 애기인지 모를 소스가 나와서
고수님들의 조언 부탁드립니다.
참고로 페이지는 49Page이고 항목은 3.8.5 입니다.
문서명은
International Standard ISO/IEC 14882
Programming Language C++
#include <iostream>
using namespace std;
struct B {
virtual void f();
void mutate();
virtual ~B();
};
struct D1:B { void f(); };
struct D2:B { void f(); };
void B::mutate()
{
new (this) D2; // 여기서 new(void*) 뒤에 D2가 왜 붙는지
f(); // 그리고 이게 어떤 역활을 하나요?
}
int main(int argc, char *argv[])
{
void * p = malloc(sizeof(D1) + sizeof(D2));
B* pb = new (p) D1; // 여기서도 위의 질문과 같은 내용입니다. 이게 뭔지?
pb->mutate();
&pb;
void* q = pb;
pb->f();
delete pb;
free(p);
return 0;
}
아참 그리고 메모리 관리에 대해서 잘 정리된 자료가 잇으신분
공유 부탁 드릴께요.
그럼 이만
|