クラスAbstractBase
で純粋仮想関数を宣言でき、Base
のメンバーを使用し、実装を探すことがないようにBase
クラスメンバーをDerived
に表示することができますか? Derived
にあります。これまでのところ、Base
のメンバーは、using
を使用しようとするとビジュアルになりましたが、ルックアップはこのケースでは無視されているように見えるため、コンパイルされません。これはまったく可能ですか?ここに私のコードは次のとおりです。抽象基本クラスから別の基本クラスメンバーにアクセス
#include <iostream>
using namespace std;
class AbstractBase {
public:
AbstractBase(){}
virtual ~AbstractBase(){}
protected:
virtual void f() = 0;
};
class Base {
public:
Base(){}
protected:
void f() {cout << "called Base's f()" << endl;}
};
class Derived : public Base, public AbstractBase {
public:
Derived(){}
//using Base::f; /*this won't compile*/
private:
void f(){} /*Access Base's f() here rather than implement*/
};
int main()
{
Derived d;
}
そのように簡単です。これは簡単なケースです。これは 'Derived'を' AbstractBase'として再び使うときに便利です。ありがとう! – tobilocker
'::'は演算子ではありません。 –
@JonathanMeeそれは何ですか?私にとっては、これは「名前空間演算子」とも呼ばれます。 – tobilocker