fork(7) download
  1. #include <memory>
  2. #include <iostream>
  3.  
  4. class DataProvider
  5. {
  6. public:
  7. int x;
  8. };
  9.  
  10. class MyClass
  11. {
  12. public:
  13. const DataProvider &getDataProvider() const
  14. {
  15. return *data;
  16. }
  17. void setDataProvider(std::unique_ptr<DataProvider> newData)
  18. {
  19. data = std::move(newData);
  20. }
  21.  
  22. private:
  23. std::unique_ptr<DataProvider> data;
  24. };
  25.  
  26. int main()
  27. {
  28. MyClass a;
  29. std::unique_ptr<DataProvider> provider(new DataProvider{5});
  30. a.setDataProvider(std::move(provider));
  31. const DataProvider &otherProvider = a.getDataProvider();
  32. std::cout << otherProvider.x << std::endl;
  33. }
Success #stdin #stdout 0s 3028KB
stdin
Standard input is empty
stdout
5