객체생성시 반드시 호출되는 것이 생성자라면, 객체소멸시 반드시 호출되는 것이 소멸자이다
class AAA { }
위와같은 클래스 정의는 아래의 클래스 정의와 100% 동일하다
class AAA { public: AAA() { } ~AAA() { } }
#include <iostream>
#include <cstring>
using namespace std;
class Person
{
private:
char* name;
int age;
public:
Person(char* myname, int myage)
{
int len = strlen(myname) + 1;
name = new char[len];
strcpy(name, myname);
age = myage;
}
void showPersonInfo() const
{
cout << "이름: " << name << endl;
cout << "나이: " << age << endl;
}
~Person()
{
delete[]name;
cout << "called destructor!" << endl;
}
};
int main()
{
Person man1("Lee su jin", 25);
Person man2("Lee gyu su", 27);
man1.showPersonInfo();
man2.showPersonInfo();
return 0;
}