fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <initializer_list>
  4. #include <algorithm>
  5. #include <iterator>
  6.  
  7. template <typename T>
  8. class X {
  9. public:
  10.  
  11. std::vector<T> elements;
  12.  
  13. X(const std::initializer_list<T> &init) :
  14. elements(init) {
  15.  
  16. std::cout << "konstruktor\nelementy:\n";
  17. std::cout << *this << '\n';
  18. }
  19.  
  20. X &operator=(const X &other) {
  21. if (this == &other) {
  22. return *this;
  23. }
  24.  
  25. elements = other.elements;
  26.  
  27. std::cout << "operator przypisania\nelementy:\n";
  28. std::cout << *this << '\n';
  29.  
  30. return *this;
  31. }
  32. };
  33.  
  34. template <typename T>
  35. std::ostream &operator<<(std::ostream &s, const X<T> &x) {
  36. std::copy(x.elements.begin(),
  37. x.elements.end(),
  38. std::ostream_iterator<T>(s, " "));
  39. return s;
  40. }
  41.  
  42. int main() {
  43. X<int> test = {1, 2, 3};
  44.  
  45. test = {3, 4, 5};
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 2960KB
stdin
stdout
konstruktor
elementy:
1 2 3 
konstruktor
elementy:
3 4 5 
operator przypisania
elementy:
3 4 5