给定这段代码:
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::foo() 对派生可见而不用调用基类的虚拟方法重载来复制它? using
是否可以解决问题,如果可以,它去哪里了,是这样的吗?
class derived : public base {
public:
virtual int foo(int) const;
using base::foo;
}
最佳答案
很抱歉回答很短,但是是的。就是这样,做你想做的事:
class derived : public base {
public:
virtual int foo(int) const;
using base::foo;
};
另请注意,即使不使用
,您也可以访问该基地:
derived x;
string str = x.base::foo(); // works without using
关于c++ - 如何从基类中暴露隐藏的重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011552/