1. class Base
    2. {
    3. public:
    4. virtual void f() = 0;
    5. virtual ~Base() = 0;
    6. };
    7. class Derived: public Base
    8. {
    9. public:
    10. void f() {
    11. cout << "hello\n";
    12. }
    13. ~Derived() {};
    14. };
    15. int main() {
    16. Derived d; // 连接器报错,要对Base的析构函数有定义
    17. return 0;
    18. }

    要加上

    1. Base::~Base() { };