[C++]상속시 생성자와 소멸자

우니·2022년 10월 29일
0

생성자와 소멸자는 클래스 이름에 따라 결정된다.
그러므로 상속되는 것이 아니라 기반 클래스에는 기반 클래스의 생성자와 소멸자가 있고, 파생 클래스에는 파생 클래스의 생성자와 소멸자가 있다.

파생 클래스의 인스턴스를 생성하는 순간에 기반 클래스의 생성자가 먼저 호출된 다음 파생 클래스의 생성자가 호출된다.
그와 반대로 파생 클래스의 인스턴스가 삭제되는 순간에는 파생 클래스의 소멸자가 먼저 호출된 다음 기반 클래스의 소멸자가 호출된다.

파생 클래스의 생성자에서 기반 클래스의 멤버 변수를 초기화 할때,
기반 클래스의 멤버변수가 private이면 컴파일 에러가 난다.

멤버변수를 protected로 변경해줘도 되지만, 이럴땐 접근 권한의 완화보다는 public 멤버함수를 통해 멤버변수에 접근할 수 있게 만들어주는 것이 바람직하다.

class Parent
{
public:
	Parent(void);
    Parent(int money);
    ~Parent(void);
private:
	int money;
}
Parent::Paretn(int money)
{
	this->money = money;
}
Child::Child(void):Parent(100)
{
	'''
}

0개의 댓글