\#include "stdafx.h"\
\
class Base{\
public:\
virtual void fun( int a = 4 ) = 0;\
};\
\
class Derived1 : public Base{\
public:\
void fun( int a = 5 ){ cout \<\< a \<\< endl; }\
};\
\
class Derived2 : public Base{\
public:\
void fun( int a ){ cout \<\< a \<\< endl; }\
};\
int main(){\
Base \*c = new Derived1;\
c-\>fun(); // 4,可见缺省实参是编译时刻决定的\
\
Derived2 d2;\
d2.fun(); // 编译时刻决定,报错:[error C2660: “Derived2::fun”: 函数不接受 0 个参数]\
delete c;\
}