C++の仮想関数の概念を理解しようとしていますが、オンラインで読むのですが、以下のプログラム出力が1ではなく2である理由を理解できません。誰でも説明できますか?C++の仮想関数の概念
Class A
{
int a;
public:
A()
{
a = 1;
}
virtual void show()
{
cout <<a;
}
};
Class B: public A
{
int b;
public:
B()
{
b = 2;
}
virtual void show()
{
cout <<b;
}
};
int main()
{
A *pA;
B oB;
pA = &oB;
pA->show();
return 0;
}
なぜ結果が "1"になるのか説明できますか? –
なぜ実際に出力が「1」になるべきだと思いますか? –
この概念を完全に説明したC++の本を読んでください。 –