运行代码:
//从B1类派生一个D1类,并且覆盖vf()
//建立一个D1对象,并调用vf()和f()
#include"std_lib_facilities.h"
//----------------------------------------------------------------------
//定义B1类。
class B1
{
public:
virtual void vf() { cout<< "B1::vf()\n"; }
void f() { cout<< "B1::f()\n"; }
};
//----------------------------------------------------------------------
//定义派生自B1的D1类
class D1 : public B1
{
public:
void vf() { cout << "D1::vf()\n"; }
};
//-----------------------------------------------------------------------
int main()
try{
D1 d1;
d1.vf();
d1.f();
}
catch (exception& e) {
cerr << "error:" << e.what() << '\n';
keep_window_open();
return 1;
}
catch (...) {
cerr << "Oops:unknown exception!\n";
keep_window_open();
return 2;
}
//-----------------------------------------------------------------------
运行结果: