2014-11-16 3 views
2

className 클래스에서 "functionName"과 같은 이름을 가진 두 개의 멤버 함수가 필요합니다. 이와 같이 ..다른 멤버와 같은 이름을 가진 멤버 함수를 어떻게 호출합니까?

className::functionName(BaseClass &object) 
{ 
    //do something here with object 
} 
className::functionName(SecondBaseClass &object2) 
{ 
    //do something here with object2 
} 

그래서 같은 이름의 두 가지 기능이 있다면 원하는 것을 어떻게 호출 할 수 있습니까?

답변

1

이것을 함수 오버로딩이라고합니다. 매개 변수의 유형에 따라 하나를 선택하지만 전달하려는 매개 변수가 합리적으로 둘 이상의 과부하로 변환 될 수 있으면 컴파일에 실패합니다. 당신의 매개 변수가 모두 기본 클래스에서 파생 된 경우

는 그것을

functionName(static_cast<DesiredBase&>(myobject)); 
+0

을 명확하게하기 위해 다음과 같은 시도하거나 당신이 시간을 처리 할 매개 변수의 종류에 따라 다시 과부하. – didierc

+0

고마워,이 작품! – Kaz

관련 문제