私はコンパイラの優先順位がどのように機能するのか理解できないようです。 は、ここでは、例えばコードされる:関数を選択するC++の継承の優先順位
#include <iostream>
using namespace std;
class A{
public:
int f() {return 1;}
virtual int g() {return 2;}
};
class B: public A {
public:
int f() {return 3;}
virtual int g() {return 4;}
};
class C: public A{
public:
virtual int g() {return 5;}
};
int main() {
A *pa;
B b;
C c;
pa = &b;
cout<< pa -> f()<<endl<<pa -> g() << endl;
pa = &c;
cout<< pa -> f() << endl; cout<< pa -> g() << endl;
return 0;
}
関数(G()及びf())はそれぞれ、時間と理由と呼ばれるのだろうか?
*なぜ*コードが動作するのかわからない場合は、プログラムを実行してここに戻って報告してください。しかしまず、仮想ディスパッチについてのあなたの知識を使って、自分自身を説明しよう。 – user2079303
私はそれを実行した、質問はなぜだった... – user107761
あなたがそれを実行した場合、あなたは確かにどの機能が呼び出されたのか知っていますか?あなたはそれを聞いた。 – user2079303