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()"
}
私は上記のクラスを持っている場合、私は私が必要なもの::foo()
に応じて、Base
またはDerived
クラスのインスタンスのいずれかからfoo
メソッドを呼び出すことができます。しかし、何らかの問題があります:Derived
クラスインスタンスが必要な場合はどうしますか?このインスタンスからBase::foo()
メソッドを呼び出す必要がありますか?
この問題を解決するには、次のことがあります 私は
public:
void fooBase()
{
Base::foo();
}
を派生クラスに次のメソッドを貼り付け、私は、派生クラスのインスタンスからBase::foo()
方法を必要とするときDerived::fooBase()
を呼び出します。
は、私はこのようなものでusing
ディレクティブを使用してこれを行うことができている質問:
using Base::foo=fooBase; //I know this would not compile.
?