🙇‍♀️상속성

  • 객체지향 (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)

태그:

카테고리:

업데이트: