C++ 생성자와 소멸자

Hyunwoo Lee
Feb 29, 2024

--

생성자 : 클래스의 인스턴스가 생성될 때 자동으로 호출되는 함수. 생성자는 클래스와 동일한 이름을 가지며, 리턴타입이 없는게 특징.

  1. 디폴트 생성자: 매개변수가 없는 생성자, 클래스 내에서 정의하지 않아도 컴파일러가 작동으로 제공. 하지만, 생성자를 정의한 경우에는 디폴트 생성자를 제공하지 않음.
class MyFamily{
public:
MyFamily(){
std::cout <<"객체 생성"<<std::endl;
}
};

2. 매개변수를 가진 생성자

class MyFamily{
private:
std::string name;

public:
MyFamily(std::string _name){
name = _name
std::cout <<"객체 생성"<<std::endl;
}
};

3. 복사 생성자 : 객체가 다른 객체로부터 초기화될때 호출됨.

class MyFamily{
private:
std::string name;

public:
MyFamily(const Myfamily &f){
name = f.name;
std::cout <<"객체 생성"<<std::endl;
}
};

소멸자: 클래스의 객체가 메모리에서 제거될 때 자동으로 호출되는 함수. 소멸자는 생성자와 마찬가지로 동일한 이름을 가지지만, 앞에 “~” 표시가 붙는 것이 특징. 소멸자는 매개변수를 가질 수 없으며, 한 클래스에 하나만 존재.

class MyFamily{
private:
int* pictures;
public:
MyFamily(){
pictures = new int[100];
std::cout <<"객체 생성"<<std::endl;
}
~MyFamily(){
delete [] pictures;
std::cout <<"객체 삭제"<<std::endl;
}
};

--

--