Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class DynamicArray{
- int size;
- int *values;
- public:
- DynamicArray();
- DynamicArray(int size);
- DynamicArray(int size, int *values);
- DynamicArray(DynamicArray &other); //Kopier
- DynamicArray& operator=(DynamicArray other);//Zuweisung
- ~DynamicArray(){ //Destruktor
- delete[] values;
- std::cout << "destruktor\n";
- }
- DynamicArray(DynamicArray &&other); //Movekonstruktor
- DynamicArray& operator=(DynamicArray &&other); //Movezuweisungope
- };
- DynamicArray::DynamicArray():size(0),values(nullptr){
- std::cout << "Standardkonstruktor\n";
- }
- DynamicArray::DynamicArray(int s, int *v):size(s),values(v){
- std::cout << "Allgemeiner Konstruktor\n";
- }
- DynamicArray::DynamicArray(DynamicArray &other){
- if(other.values != nullptr)
- values = new int(*other.values);
- std::cout << "Hier ist Kopierkonstruktor" << std::endl;
- }
- DynamicArray& DynamicArray::operator=(DynamicArray other){
- std::swap(size,other.size);
- std::swap(values,other.values);
- std::cout<< "Hier ist Zuweisungsoperator\n";
- return *this;
- }
- DynamicArray::DynamicArray(DynamicArray &&other):size(0),values(nullptr){
- size = other.size;
- values = other.values;
- other.size = 0;
- other.values = nullptr;
- std::cout<< "Hier ist der Movekonstruktor" << std::endl;
- }
- DynamicArray& DynamicArray::operator=(DynamicArray &&other){
- if(values) delete[] values;
- values = other.values;
- other.values = nullptr;
- return *this;
- std::cout<< "hier Movezuweisungoperator" << std::endl;
- }
- int main(){
- int arr[3]= {2,3,4};
- DynamicArray d1(3,arr);
- //DynamicArray d2 = d1; //müsste Kopier sein
- //DynamicArray d3;
- //d3 = d1;//zuweisung ?
- //DynamicArray d4{std::move(d2)};
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement