fork download
  1. #include <memory>
  2.  
  3. class Base {
  4. public:
  5. virtual ~Base() = 0;
  6. Base();
  7. virtual void run() = 0;
  8. };
  9.  
  10. class Derived : public Base {
  11. public:
  12. virtual ~Derived() {}
  13. Derived() {}
  14. virtual void run() {}
  15. };
  16.  
  17. int main() {
  18. auto derived = std::make_shared<Derived>();
  19. derived->run();
  20. return 0;
  21. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /home/4Fnh61/ccXSI6J5.o: in function `Derived::~Derived()':
prog.cpp:(.text._ZN7DerivedD2Ev[_ZN7DerivedD5Ev]+0xb): undefined reference to `Base::~Base()'
/usr/bin/ld: /home/4Fnh61/ccXSI6J5.o: in function `Derived::~Derived()':
prog.cpp:(.text._ZN7DerivedD0Ev[_ZN7DerivedD5Ev]+0xf): undefined reference to `Base::~Base()'
/usr/bin/ld: /home/4Fnh61/ccXSI6J5.o: in function `std::_Sp_counted_ptr_inplace<Derived, std::allocator<Derived>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()':
prog.cpp:(.text._ZNSt23_Sp_counted_ptr_inplaceI7DerivedSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv[_ZNSt23_Sp_counted_ptr_inplaceI7DerivedSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv]+0x26): undefined reference to `Base::~Base()'
/usr/bin/ld: /home/4Fnh61/ccXSI6J5.o: in function `main':
prog.cpp:(.text.startup+0x30): undefined reference to `Base::Base()'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty