虛函數可以有默認實參,但是,即便派生類有自己的默認實參,在使用使用基類指針調用時還是會
使用基類的默認實參。反之,如果使用派生類指針調用,則會使用派生類的默認實參(當然這就不
設計多態了,因爲調用指針/引用是派生類,而不是基類)。
.
class A{
public:
A()=default;
virtual ~A()=default;
public:
virtual void func(int i = 10){
printf("A = %d\n",i);
}
};
class B :public A{
public:
B()=default;
public:
void func(int i = 20){
printf("B=%d\n", i);
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A a1;
B b1;
A* p1 = &b1;
B* p2 = &b1;
p1->func(); //10
p2->func(); //20
getchar();
return 0;
}