私はC++に取り組んでいます。以下は私のコードです:
#include <iostream>
using namespace std;
class base
{
public:
virtual void display(int a = 4)
{
cout << "base :: "<< a*a << endl;
}
};
class derived : public base
{
public:
void display(int b = 5)
{
cout << " Derived :: " << b*b*b << endl;
}
};
int main()
{
base *bobj;
derived dobj;
bobj = &dobj;
bobj->display();
return 0;
}
出力は次のとおりです。
Derived :: 64
Baseクラスの関数が呼び出されますが、派生関数のパラメーターのデフォルト値が使用されます。派生クラスメソッドdisplay()が基本クラスメソッドの引数値をとるのはなぜですか?