fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. class C{
  5. public:
  6. int x;
  7. };
  8.  
  9. class A{
  10. public:
  11. A(std::unique_ptr<C> c) : c(std::move(c)){
  12. if(c == nullptr){
  13. c = std::unique_ptr<C>(new C);
  14. c->x = 1;
  15. }
  16. }
  17. void print(){
  18. std::cout << c->x << std::endl;
  19. }
  20. private:
  21. std::unique_ptr<C> c;
  22. };
  23.  
  24. class B : public A{
  25. public:
  26. B(std::unique_ptr<C> c) : A(std::move(c)){
  27. }
  28. private:
  29. };
  30.  
  31. int main(int argc, char* argv[]){
  32. B b(std::move(nullptr));
  33. b.print();
  34. return 0;
  35. }
Runtime error #stdin #stdout 0s 3424KB
stdin
Standard input is empty
stdout
Standard output is empty