【发布时间】:2013-02-08 06:36:36
【问题描述】:
请帮我找出背后的原因:
#include <iostream>
using std::cout;
class A {
public:
virtual void fun(int a = 5) { cout<<a; }
};
class B::public A {
public:
void fun(int a = 10) {
cout<<"Inside A::B::fun().\n";
cout<<"\n"<<a;
}
};
int _tmain(int argc, _TCHAR* argv[]) {
A *obj = new B();
obj->fun();
reutrn 0;
}
虽然它正在调用 B::fun(),但仍然打印 5,这是为什么以及如何工作的。?
【问题讨论】:
-
是的@Mark,我正在使用 MS VC++ 2010 Express
标签: c++ virtual-functions default-arguments