1
让我们看看下面的代码:基类方法的别名
#include <iostream>
class Base
{
public:
void foo() //Here we have some method called foo.
{
std::cout << "Base::foo()\n";
}
};
class Derived : public Base
{
public:
void foo() //Here we override the Base::foo() with Derived::foo()
{
std::cout << "Derived::foo()\n";
}
};
int main()
{
Base *base1 = new Base;
Derived *der1 = new Derived;
base1->foo(); //Prints "Base::foo()"
der1->foo(); //Prints "Derived::foo()"
}
如果我有上述类别,我可以从任何Base
或Derived
类实例调用foo
方法,这取决于我需要什么::foo()
。但是有一些问题:如果我需要Derived
类实例,但是我确实需要从这个实例调用Base::foo()
方法?
这个问题的解决可能是下一个: 我下一个方法粘贴到派生
public:
void fooBase()
{
Base::foo();
}
类和调用Derived::fooBase()
当我需要从派生类的实例Base::foo()
方法。
问题是我能做到这一点使用using
指令像这样的东西:
using Base::foo=fooBase; //I know this would not compile.
?