fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. class Base {
  5. public:
  6. ~Base () = default;
  7. Base () { count = 0; }
  8.  
  9. virtual void method1() = 0;
  10. virtual void method2() = 0;
  11.  
  12. private:
  13. int count;
  14. };
  15.  
  16. class Child final : public Base {
  17. public:
  18. Child() = default;
  19. ~Child() = default;
  20.  
  21. void method1() override { std::cout << "B Running method 1\n"; }
  22. void method2() override { std::cout << "B Running method 2\n"; }
  23. };
  24.  
  25. class myClass {
  26. public:
  27. myClass(std::unique_ptr<Base> base) : _base(std::move(base)) { }
  28. ~myClass() = default;
  29.  
  30. private:
  31. std::unique_ptr<Base> _base;
  32. };
  33.  
  34. int main() {
  35. myClass obj(std::make_unique<Child>());
  36. std::cout << "OK";
  37. }
Success #stdin #stdout 0s 4552KB
stdin
Standard input is empty
stdout
OK