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

in #kr-dev6 years ago (edited)

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

1.생성자(Constructor)

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

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

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;
}

출력

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

2.소멸자(Destructor)


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;
}
출력

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


<목록>

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) 사용법

Sort:  

점점 내용이 어려워지는군요.. 잘 읽고있습니다!

자주 놀러와 주시네요! 감사합니다.

C 배우는데 도움이 될까 해서 매번 읽어보고 있습니다 ㅎㅎ

짱짱맨 호출에 출동했습니다!!

Coin Marketplace

STEEM 0.28
TRX 0.11
JST 0.031
BTC 68606.74
ETH 3912.43
USDT 1.00
SBD 3.64