#include<iostream>
using namespace std;
class base{
public:
 base(){}
 virtual void func(int i = 12)
 {
  cout<<"base "<<i<<endl;
 }
};
class Derived:public base{
public:
 Derived(){}
 virtual void func(int i = 22)
 {
  cout<<"Derived "<<i<<endl;
 }
};
int main()
{
 Derived d;
 base& b1 = d;
 base b2 = d;
 b1.func();
 b2.func();
 d.func();
 return 0;
}
输出: Derived 12
base 12
Derived 22
1.默认参数静态绑定。
2.c++通过基类的引用或指针调用虚函数时,才发生动态绑定。
3.base& b1 = d; 把d地址赋给b1; base b2 = d;把d中base内容赋给b2;
原文:http://blog.csdn.net/gavin0123/article/details/39448869