이 코드를 감안할 때 :기본 클래스에서 숨겨진 오버로드를 노출하는 방법?
class base {
public:
string foo() const; // Want this to be visible in 'derived' class.
}
class derived : public base {
public:
virtual int foo(int) const; // Causes base class foo() to be hidden.
}
base class를 호출하는 더미 메소드 오버로딩없이 base :: foo()를 파생시킬 수 있습니까? using
가 속임수를 쓰는가? 그렇다면 어디로 간다.
class derived : public base {
public:
virtual int foo(int) const;
using base::foo;
}
나는 포인터를 위해 작동한다고 가정한다 : x_ptr-> base :: foo(), 맞습니까? – WilliamKF
@ 윌리엄 : 예. 둘의 차이점은'using'이 그 이름의 모든 멤버를 하나의 범위로 끌어 들이기 때문에 모두가 과부하 해결에 참여한다는 것입니다. – ybungalobill