缺省参数值是静态绑定的
代码:
#include "iostream" using namespace std; class base{ public: virtual void fun(int i=1){ cout<<"base::"<<i<<endl; } }; class derive:public base { private: virtual void fun(int i=2){ cout<<"derive::"<<i<<endl; } }; int main(int argc, char const *argv[]) { base *test = new derive(); test->fun();//此时输出的i仍然是1,而不是derive里面的2 return 0; }
因此
绝不重新定义继承而来的缺省参数值
绝不重新定义继承而来的缺省参数值
绝不重新定义继承而来的缺省参数值
浙公网安备 33010602011771号