私は最近using
、基本クラス関数を派生クラスの名前空間にインポートするための使用を発見しました (非表示になっている場合)。私はそれを使用して、派生クラスの関数の実装として基本クラスから関数をインポートしようとしていました:
class A {
public:
virtual void foo() = 0;
};
class B {
public:
void foo() {
}
};
class C : public A, public B {
public:
using B::foo;
};
int main()
{
C c;
}
A::foo()
これは、.NET の純粋な仮想関数であるため、コンパイルされませんC
。using B::foo;
の実装になることを期待していましたfoo()
。なぜそうではないのですか?