fork(2) download
  1. #include <iostream>
  2. #include <initializer_list>
  3. #include <memory>
  4.  
  5. class arr1D
  6. {
  7. protected:
  8. int size;
  9. std::unique_ptr<int[]> arr;
  10. public:
  11. arr1D(const std::initializer_list<int>& input) : size(input.size())
  12. {
  13. arr = std::unique_ptr<int[]>(new int[size]);
  14. int index = 0;
  15. for (const auto& it : input)
  16. {
  17. arr[index] = it;
  18. ++index;
  19. }
  20. }
  21.  
  22. arr1D(int siz = 10) :size(siz), arr(new int[size] {0}) // this will also do the same job
  23. {}
  24. friend std::ostream & operator<<(std::ostream &, const arr1D &);
  25. };
  26. int main()
  27. {
  28. arr1D a1 = { 1,2,3,4,5 };
  29. std::cout << a1 << std::endl;
  30.  
  31. arr1D a2;
  32. std::cout << a2 << std::endl;
  33.  
  34. std::cin.get();
  35. }
  36. std::ostream & operator<<(std::ostream &_return, const arr1D &a)
  37. {
  38. _return << "arr: ";
  39. for (int i = 0; i< a.size; i++) std::cout << a.arr[i] << " ";
  40.  
  41. _return << "size: " << a.size;
  42. return _return;
  43. }
  44.  
  45.  
Success #stdin #stdout 0s 4368KB
stdin
Standard input is empty
stdout
arr: 1 2 3 4 5 size: 5
arr: 0 0 0 0 0 0 0 0 0 0 size: 10