Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. class DynamicArray{
  5. int size;
  6. int *values;
  7.  
  8. public:
  9. DynamicArray();
  10. DynamicArray(int size);
  11. DynamicArray(int size, int *values);
  12.  
  13.  
  14. DynamicArray(DynamicArray &other); //Kopier
  15. DynamicArray& operator=(DynamicArray other);//Zuweisung
  16. ~DynamicArray(){ //Destruktor
  17. delete[] values;
  18. std::cout << "destruktor\n";
  19. }
  20. DynamicArray(DynamicArray &&other); //Movekonstruktor
  21. DynamicArray& operator=(DynamicArray &&other); //Movezuweisungope
  22. };
  23.  
  24.  
  25.  
  26.  
  27. DynamicArray::DynamicArray():size(0),values(nullptr){
  28. std::cout << "Standardkonstruktor\n";
  29. }
  30.  
  31. DynamicArray::DynamicArray(int s, int *v):size(s),values(v){
  32. std::cout << "Allgemeiner Konstruktor\n";
  33. }
  34.  
  35. DynamicArray::DynamicArray(DynamicArray &other){
  36. if(other.values != nullptr)
  37. values = new int(*other.values);
  38. std::cout << "Hier ist Kopierkonstruktor" << std::endl;
  39.  
  40. }
  41.  
  42.  
  43. DynamicArray& DynamicArray::operator=(DynamicArray other){
  44. std::swap(size,other.size);
  45. std::swap(values,other.values);
  46. std::cout<< "Hier ist Zuweisungsoperator\n";
  47. return *this;
  48. }
  49.  
  50. DynamicArray::DynamicArray(DynamicArray &&other):size(0),values(nullptr){
  51. size = other.size;
  52. values = other.values;
  53.  
  54. other.size = 0;
  55. other.values = nullptr;
  56.  
  57. std::cout<< "Hier ist der Movekonstruktor" << std::endl;
  58. }
  59.  
  60. DynamicArray& DynamicArray::operator=(DynamicArray &&other){
  61. if(values) delete[] values;
  62. values = other.values;
  63. other.values = nullptr;
  64. return *this;
  65. std::cout<< "hier Movezuweisungoperator" << std::endl;
  66. }
  67.  
  68.  
  69. int main(){
  70.  
  71. int arr[3]= {2,3,4};
  72.  
  73. DynamicArray d1(3,arr);
  74. //DynamicArray d2 = d1; //müsste Kopier sein
  75. //DynamicArray d3;
  76. //d3 = d1;//zuweisung ?
  77.  
  78. //DynamicArray d4{std::move(d2)};
  79.  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement