#include <iostream>
#include <string.h>
using namespace std;
class person{
private :
char *Name;
int age;
public :
person(const char *name, int age)
{
Name = new char[50];
strcpy(Name,name);
this->age = age;
printf(\"생성자 콜\\n\");
}
~person()
{
printf(\"소멸자 콜\\n\");
delete this->Name;
}
void printPerson()
{
printf(\"name : %s\\n\",Name);
}
};
int main()
{
person juho(\"abc\",20);
juho.printPerson();
juho.~person();
system(\"pause\");
return 0;
}
옛날에 C++책 볼때 소멸자 호출예제를 본 것 같은데;;
이미 내부적으로 파괴자 호출되었는데
호출할수는 있는데 delete 가 2번 호출되니 망이지
또호출되니 에러지않음?
소멸자를 직접 호출할 경우에는 한번 호출하고 클레스 안드로메다 보내고 뿡 인줄 알았는데;;
가능하긴 한데 저건 지금 delete 를 두번한다
그리고 머하려고 호출을하냐
소멸자에서 방어코드를 잘 넣어주면 에러는 피하것지... if(this->Name) { delete this->Name; this->Name = null; }
저건 미친 문법이지 -ㅅ-
그냥 함수일뿐임..
delete한번 호출하는거 스샷으로 보여 줬잖아 -_-
[...]; 이거때문에 한번 호출하는걸로 보이지 지나가봐 2번이다.
뭔- _-
아하, 그렇네
의미없진 않아. 메모리풀 만들려면 저런 문법도 알아야 함.