본문 바로가기
Script/Modern C++

[Modern C++] Chapter 07. override, final

by song.ift 2023. 5. 22.

GitHub : https://github.com/developeSHG/Modern-C/blob/a30dc0a22e2afcdb8ae81e9ca9e3f46fb125ab66/Modern%20C%2B%2B/Modern%20C%2B%2B/override%2C%20final.cpp

 

GitHub - developeSHG/Modern-C: Modern C++

Modern C++. Contribute to developeSHG/Modern-C development by creating an account on GitHub.

github.com

 

 


 

 

class Creature
{
public:
	virtual void Attack()	// 가상함수의 첫 시작은 virtual 키워드.
    {
    	cout << "Creature!" << endl;
    }
}

class Player : public Creature
{
public:
	// 재정의(override)
	virtual void Attack() override	// 상속받은 가상함수에는 override 키워드.
    {
    	cout << "Player!" << endl;
    }
}

class Knight : public Player
{
public:
	virtual void Attack() final	// 가상함수의 마지막에는 final 키워드 = (더이상 사용하지 않겠다)
    {
    	cout << "Knight!" << endl;
    }
}

// 사실 override와 final은 사용하지 않아도 잘 동작할 수 있다.
// 하지만 가상함수와 관계 클래스가 많아지게 되면, 기능을 한 번에 알아보는게 힘들 수 있다.
// 그래서 가독성과 실수를 예방하기 위해서 키워드를 붙이는게 좋다.

댓글