파생 클래스에서 기본 클래스의 함수 이름을 다시 정의하거나 오버로드하면
파생 클래스에서 오버로드 된 함수를 액세스하거나 볼 수 없습니다.
이유가 무엇입니까 ?? 우리는 그 함수의 모든 오버로드 된 버전이 파생 클래스
객체에 사용할 수있는 다음 파생 클래스 의 기본 클래스에서 oveloaded 기능에 과부하가 걸리지 않으면이 왜오버로드 된 함수는 파생 클래스에 숨겨져 있습니다
입니까 ??
이유가 무엇입니까. 컴파일러와 링커 레벨
에서 설명하면 더 도움이 될 것입니다. 이런 종류의 시나리오를 지원하는 것이 불가능합니까 ?? 이것은 실제 기술적 인 이유가 없습니다
Edited For examble: class B { public: int f() {} int f(string s) {} }; class D : public B { public: int f(int) {} }; int main() { D d; d.f(1); //d.f(string); //hidden for D } Now object 'd' can't access f() and f(string).
일부 예제 코드를 게시해도 설명이 명확하지 않습니다. –
[가능한 이유는 파생 클래스의 재정의 된 함수가 기본 클래스의 다른 오버로드를 숨 깁니다.] (http://stackoverflow.com/questions/1628768/why-does-an-overridden-function-in-the- derived-class-hide-other-overloads of the) – sbi
@sbi 중복 질문을 게시해서 죄송합니다. 사실 나는 비슷한 질문이 있으면 얼마 동안 노력했지만 아무 것도 찾지 못했습니다. 내 검색 패턴이 잘못되었으므로 기존 질문을 찾지 못했습니다. – esh