fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. class Base
  5. {
  6. public:
  7. virtual ~Base() {}
  8.  
  9. virtual void print() const = 0; // Pure abstract function
  10. };
  11.  
  12. class Derived : public Base
  13. {
  14. public:
  15. virtual void print() const override { std::cout << "Derived\n"; }
  16. };
  17.  
  18. int main()
  19. {
  20. std::unique_ptr<Base> base = std::make_unique<Derived>();
  21. base->print();
  22.  
  23. return 0;
  24. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
Derived