0
私は基本クラス 'a'にいくつかの仮想関数を含み、派生クラス 'b'にその関数をオーバーロードします。今私はもう一つのクラス 'c'は 'b'から派生し、私はクラスcへのポインタを持っています。しかし、私はどのように 'c'クラスポインタからその関数を呼び出すかを理解することはできません。私を助けてください、おそらくその愚かな、しかし私はここで立ち往生しています。派生クラスのポインタが基本クラス関数を呼び出す方法
私は基本クラス 'a'にいくつかの仮想関数を含み、派生クラス 'b'にその関数をオーバーロードします。今私はもう一つのクラス 'c'は 'b'から派生し、私はクラスcへのポインタを持っています。しかし、私はどのように 'c'クラスポインタからその関数を呼び出すかを理解することはできません。私を助けてください、おそらくその愚かな、しかし私はここで立ち往生しています。派生クラスのポインタが基本クラス関数を呼び出す方法
struct A { virtual void foo() {} };
struct B: A { void foo() override {} };
struct C: B {};
auto main() -> int
{
C o;
C* p = &o;
p->foo(); // Calls B::foo
p->A::foo(); // Calls A::foo
}
c
がC
へのポインタである場合は、次のヒント ため
c->A::method();
おかげで、私はQtの(C++ GUIライブラリ)に取り組んでいますし、その中で、私はコネクト機能を持って、より具体的にはどのこのようなものです connect( "Cクラスポインタ"、SIGNAL(クラスFUNC)、別のptr、SLOT(関数)); 今、このfuncを使用しています.FUNCがCクラスにないというエラーが表示されます これには解決策があります... –