// virtual_default_parm_test.cpp using namespace std; #include class base { public: virtual void read_out(int = 1, int = 2); void call_read_out(); }; class derived : public base { public: virtual void read_out(int = 0, int = -1); }; void base::read_out(int c1, int c2) { cout << "This is base::read_out" << endl; cout << "c1 default: " << c1 << endl; cout << "c2 default: " << c2 << endl; } void base::call_read_out() { read_out(); } void derived::read_out(int c1, int c2) { cout << "This is derived::read_out" << endl; cout << "c1 default: " << c1 << endl; cout << "c2 default: " << c2 << endl; } int main() { base b; derived d; b.read_out(); d.read_out(); b.call_read_out(); d.call_read_out(); }