CPP_어소_81_오버라이딩

CJB_ny·2022년 7월 28일
0

CPP_AROTHO

목록 보기
80/83
post-thumbnail

오버로딩

"함수명"이 똑같은데 인자타입의 "차이"가 생겨서

"컴파일러"가 "구분"할 여지를 주는 것.

동시에 같은 이름의 함수가 여러개 존재 가능.

오버라이딩

"상속" 관계에서만 사용이 가능하다.

부모에서 virtual로 함수 자식이들이 알아서 구현해라~ 던져주면

자식클래스에서 이것을 정의를 해서 자신의 입맛에 맞게 정의해서 사용.

class Parent
{
private:
	int m_value_1;
public:
	Parent()
		:
		m_value_1(10)
	{
		cout << "123" << endl;
	}

public:
	void Test()
	{
		cout << "Test P" << endl;
	}

};

class Child : public Parent
{
private:
	float m_value_2;

public:
	Child()
		:
		m_value_2(20.2f)
	{
		cout << "456" << endl;
	}
public:
	void Test()
	{
		cout << "Test P" << endl;
	}
};


Child c1;
c1.Test(); 

이렇게하게 되면

자식쪽의 Test함수를 호출을 한다.

즉, 같은 이름의 함수가 부모에게 있지만

자식에서 이것을 구현을 하면 "덮어 썻다"고 판단을 함 => 이게 "오버라이딩"이다.

그런데 굳이

이렇게 사용을하면 오버라이딩한 함수 말고 부모의 OutPut함수 호출이 가능하기는 하다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글