가능한 중복 :
overloaded functions are hidden in derived class수 없습니다
그들이 모두에 과부하 경우 내가 직접 파생 클래스에서 기본 클래스에서 메서드를 사용할 수 없습니다 것 같다 기본 클래스 및 C++의 파생 클래스 다음 코드는 no matching function for call to ‘Derived::getTwo()’
오류를 생성합니다.
class Base {
public:
int getTwo() {
return 2;
}
int getTwo(int, int) {
return 2;
}
};
class Derived : public Base {
public:
int getValue() {
// no matching function for call to ‘Derived::getTwo()’
return getTwo();
}
int getTwo(int) {
return 2;
}
};
나는 return getTwo();
return ((Base*) this)->getTwo()
에 변경, 작동,하지만 그건 나에게 추한 보인다면. 이 문제를 어떻게 해결할 수 있습니까?
P. g ++ 4.7을 옵션 std = gnu ++ c11과 함께 사용합니다.
이것은 확실히 중복으로 닫힐 것이다. 그러나 그 동안 빠른 대답은 클래스 scope의'Derived' 정의에'Using Base :: getTwo'를 추가하는 것입니다. – ildjarn