오븐 노트

[C++] override, final 본문

Develop/C++

[C++] override, final

오 븐 2023. 12. 28. 22:18
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <algorithm>

class Creature
{
public:
	virtual void Attack()
	{
		cout << "Creature" << endl;
	}
};

class Player : public Creature
{
public:
	virtual void Attack() override // final은 마지막으로 override를 하고 더 이상 허용하지 않겠다는 함수 (가끔 사용)
	{
		cout << "Player" << endl;
	}
};

class Knight : public Player
{
public:
	// 재정의(override)  
	virtual void Attack() override // 부모에만 virtual 붙여도되지만 실수예방, 가독성을 위해
	{
		cout << "Knight" << endl;
	}

	// 오버로딩(overloading) : 함수 이름의 재사용
	/*void Attack(int a)
	{
		
	}*/

private:
	int _stamina = 100;
};

int main()
{
	Player* p = new Knight();

	p->Attack();

	return 0;
}

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
 
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.

 

모든 글은 제가 공부하기 위해 작성합니다.

'Develop > C++' 카테고리의 다른 글

[C++] 전달 참조 (forwarding reference)  (0) 2024.01.02
[C++] 오른값 참조 (rvalue reference)  (0) 2023.12.30
[C++] delete(삭제된 함수)  (0) 2023.12.13
[C++] enum class  (0) 2023.12.13
[C++] using  (0) 2023.12.07