1.当基类指针指向派生类对象时,调用含有默认参数的虚函数时,得到的默认参数是基类版本虚函数的默认实参,而非派生类版本虚函数的默认实参
2.这样的设计有点让人无语!
#include <iostream>
class A
{
public:
virtual void f(int v = 100)
{
std::cout << "A:" <<"\tv = " << v << std::endl;
}
};
class B : public A
{
public:
void f(int v = 200)
{
std::cout << "B:" << "v = " << v << std::endl;
}
};
int main()
{
B b;
A *pa = &b;
pa->f();
system("pause");
return 0;
}
执行结果: