C++ Rookiss Part1 C++ 프로그래밍 입문 : 상속성
🙇♀️상속성
- 객체지향 (OOP Object Oriented Programming)
- 상속성
- 은닉성
- 다형성
- 생성자/소멸자 자식을 생성하면 부모의 생성자 또한 호출된다 생성자와 소멸자는 물려주는게 아니라 따로따로 생겨난다.
부모 생성자 호출 -> 자식 생성자 호출 -> 부모 소멸자 호출 -> 자식 소멸자 호출
🪐상속성(Inheritance)
상속을 받을 때는 : public /*부모 클래스*/
를 붙여준다.
ex) class Knight : public Player
부모에게 있는 함수를 재정의 할 수 있다. 재정의를 한다면 함수를 사용 할 때 부모의 함수는 호출되지 않는다.
- 선(먼저)처리 영역
- 여기서 Player() 생성자를 호출
- 엄밀히 말하면 Knight()부터 호출되는데 선처리 영역에서 Player생성자가 생겨나는 것
public:
Knight()
/*
* 선(먼저)처리 영역
* 여기서 Player() 생성자를 호출
* 엄밀히 말하면 Knight()부터 호출되는데 선처리 영역에서 Player생성자가 생겨나는 것
*/
{
_stamina = 100;
cout << "Knight() 기본 생성자 호출" << endl;
}
- 후(나중에)처리 영역
- 소멸자는
main
함수가 끝나고 호출되는데 자식부터 소멸자가 호출된다 ```cpp ~Knight() { cout « “Knight() 소멸자 호출” « endl; } /*
- 소멸자는
- 후(나중에)처리 영역
- 여기서 ~Player() 소멸자를 호출 */ ```
부모 클래스의 기본 생성자가 기본적으로 호출되는데 부모 클래스의 다른 생성자를 호출하고 싶을 때는 자식의 생성자에 ` : /부모 클래스(다른 버전)/ `을 넣는다.
ex) Knight(int stamina) : Player(100)