#include using namespace std; class BasicException { public: virtual string Where() { return "BasicException..."; } }; class FileSysException : public BasicException { public: virtual string Where() { return "FileSysException..."; } }; class FileNotFound : public FileSysException { public: virtual string Where() { return "FileNotFound..."; } }; class DiskNotFound : public FileSysException { public: virtual string Where() { return "DiskNotFound..."; } }; int main() { try { // ..... //程序代码 DiskNotFound err; throw &err; } catch (BasicException *p) { cout << p->Where() << endl; } }