[C++] 처음부터 시작하는 C++ 6편. 생성자 및 소멸자 사용법

Words
204
Reading
1 min
Listen
Play
8y

alt

안녕하세요!! wonnieyoon@wonnieyoon입니다.
오늘은 C++ 생성자와 소멸자에 대해 포스팅하겠습니다.

1.생성자(Constructor)

이전 포스팅에서 객체를 만들어 낼때 클래스에 함수를 만들어 데이터를 넣었지만 사실 초기화는 생성자를 통해서 구현합니다.

생성자의 형태는
class 클래스명{
public:
클래스명()
{
}
}
의 형태를 하고 있습니다.

alt

class Person{

private:
char * name;
int height;
int weight;

public:
Person(char * name, int height, int weight)
{
this->name = name;
this->height = height;
this->weight = weight;
}
void GetInfo();
};

void Person::GetInfo()
{
cout << "나의 이름: " << name << " 키: " << height << " 몸무게: " <<weight << endl;
}

int main()
{
Person p("steem",160,50);
p.GetInfo();
return 0;
}

출력
alt

생성자는 객체 생성시 호출되는데요.
만약 생성자를 따로 만들지 않게 된다면 default로 클래스(){}가 만들어진다고 보시면 됩니다.
생성자 또한 함수이므로 오버로딩이 가능하다는 점도 기억해주세요!!

2.소멸자(Destructor)

alt
class Person{
private:
char * name;
int height;
int weight;
public:
Person(char * name, int height, int weight)
{
this->name = name;
this->height = height;
this->weight = weight;
cout << "create" << endl;
}

    ~Person()
    {
        cout << "delete" << endl;
    }

    void GetInfo();

};

void Person::GetInfo()
{
cout << "나의 이름: " << name << " 키: " << height << " 몸무게: " <<weight << endl;
}

int main()
{
Person p("steem",160,50);
p.GetInfo();
return 0;
}
출력
alt

소멸자는 객체가 소멸될때 호출됩니다.
코드를 보시면 알겠지만 소멸자를 직접 호출해준적이 없습니다.
형식은
~클래스명()
{
} 의 형태를 취하고 있습니다. 생성자 앞에 ~만 붙여주면 소멸자가 됩니다.
소멸자 또한 정의 해주지 않으면 디폴트 소멸자가 생성됩니다.


<목록>


1. [C] 처음부터 시작하는 C 1편. 입출력
2. [C] 처음부터 시작하는 C 2편. using,namespace 사용법
3. [C] 처음부터 시작하는 C 3편. 메모리 할당 및 해제( new , delete ) 사용법
4. [C] 처음부터 시작하는 C 4편. 구조체( struct) 사용법
5. [C] 처음부터 시작하는 C 5편. 클래스 (Class) 사용법

[C++] 처음부터 시작하는 C++ 6편. 생성자 및 소멸자 사용법 | Ecency