C++을 공부한 사람이라면 누구나 한번쯤은 헷갈려 봤을 법한 오버로딩과 오버라이딩에 대해 정리해보자. 우선 오버로딩은 매우 간단하다. 함수 파라미터 타입이나 갯수만 다르게해서 다른 함수로 인식하도록 하는 것이다. 그 말은 함수의 리턴 타입만 다르게 해서는 오버로딩이 아니라는 의미이다. 예를 들어서 이렇게 리턴 타입만 다르고 함수 파라미터의 갯수와 타입이 같으면 오버로딩이 안된다는 것이다. 오버라이딩은 상속 관계에서 부모의 기능을 자식이 상속받을 때, 자식이 부모의 기능을 재정의하는 것을 의미한다. 예를 들어서 class person { public: void foo() { cout