

중요함으로 짚고 넘어가자.
1. Overloding
class Test
{
public:
int Add(int _a, int _b) {return _a + _b;};
float Add(float _a, float _b) {return _a + _b;};
double Add(double _a, double _b) {return _a + _b;};
};
위의 예시와 같이 동일한 기능을 수행하는 함수를 다양한 버전으로 만들 수 있다.
Overloding 장점
2. Overriding
class TestParent
{
public:
int aP = 100;
int bP = 0;
public:
virtual int Init(int _a, int _b) {return _a = aP, _b = bP};
};
class TestChild :
public TestParent
{
public:
int aC = 200;
int bC = 10;
public:
virtual int Init(int _a, int_b) {return _a = aC, _b = bC;}
}
위의 예시와 같이 동일한 이름, 인자, Return 값을 가졌지만 결과는 class 마다 다른 함수를 만들 수 있다.
Overriding 특징
접근 제어자를 축소 시킴으로 개발 도중 발생할 수 있는 실수가 줄어든다.
예외 처리와 같이 상속받은 모든 class 에서 수행되어야 하는 기능은 부모 class에서 관리한다.
정적 멤버 함수의 경우 자식 class 에서 virtual로 받아 갈 수 없다. 즉, Overriding 할 수 없다.
덕분에 좋은 정보 얻어갑니다, 감사합니다.