너네 혹시 shared_ptr 사용해본 사람 있어 ?
거기서 꼭 힙 메모리에서 할당받은 객체의 주소 말고도 그냥, HANDLE 이라던지 , 지역 객체에 대한 주소값을
넘길수 있는데 ,
이때 넘겨진 주소 ( HANDLE 또는 지역 객체 )에 delete 를 하게 되면 exception이 생기자나 .
그래서 삭제자( deleter )이란걸 설정할수 있어서
자기가 소멸될 시기에 삭제자가 설정되어 있으면 삭제자의 operator() 함수가 호출되는 형식이거든.
근데 말야 ..
같은 클래스에서 삭제자를 설정 하거나 , 설정하지 않거나 할때
삭제자를 어떤식으로 구현했을지 궁금한거야.
그러니깐 삭제자를 설정하지 않는 생성자에서는, shared_ptr클래스 내부에서 삭제자를 어떻게 삭제자 객체를 만들었을까 이거지 .
질문이 이해가 안가지 ?
템플릿에서 타입 추론이 2가지 형식으로 할수 잇는데, 인스턴스화시에 < int > 요런식으로 클래스를 선언하거나 함수를 호출시에
두번째는 넘겨진 인자로 타입 추론
요 두가지 인데..
shared_ptr에서는 소멸자를 인자로 넘기지 않는 생성자 에서는
std::tr1::shared_ptr< int > a( new int ); // 삭제자 명시 X
그럼 저 삭제자를 인자로 받지 않는 shared_ptr생성자에서 는 어떻게 삭제자를 만들수 있냐 이거지..?
이해가 되나 ?;
참고로 boost에서 shared_ptr 구현을 보고 , 대충 내가 필요한 기능을 구현하긴 했지만 ,
혹시 다른 솔루션이 있나 싶어서
포인터를알잔냐
RTTI
RTTI 는 가상함수가 하나 이상 존재하는 클래스에 대해서만 가능하자나
그리고 RTTI로 타입에 대한 처리를 따로 하게 되면 유지보수도 힘들어 지구
수행 성능도 나빠지고
그리고 저기 부분에서 어떻게 RTTI로 한다는건지 이해도 안가네;
나 이해력 딸름
ㅠㅠ
나그네 // 포인터를 안다는게 무슨 의미지즘 풀어서 알려줄수 있을ㄲㅏ?ㅇ
뭔 소리인지. 왜 삭제자를 못 만드는지 이해가 안됨...
ㄴ 삭제자가 명시되지 않은 상태에서 어떻게 삭제자 객체를 shared_ptr 내부에서 만들수 있냐 이거지