Bruce Eckel's Thinking in C++, 2nd Ed | Contents | Prev | Next |
//: C23:Catchref.cpp // Why catch by reference? #include <iostream> using namespace std; class Base { public: virtual void what() { cout << "Base" << endl; } }; class Derived : public Base { public: void what() { cout << "Derived" << endl; } }; void f() { throw Derived(); } int main() { try { f(); } catch(Base b) { b.what(); } try { f(); } catch(Base& b) { b.what(); } } ///:~
Base Derived