1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#include <utility>
#include <iostream>
using namespace std;
struct Class
{
Class() = default;
Class(Class &&tmp);
Class(Class const &other);
Class &operator=(Class &&tmp);
Class &operator=(Class const &other);
};
Class::Class(Class &&tmp)
{
cout << "Move CC\n";
}
Class::Class(Class const &other)
{
cout << "Copy cons\n";
}
Class &Class::operator=(Class &&tmp)
{
cout << "Move assignemnt\n";
return *this;
}
Class &Class::operator=(Class const &other)
{
cout << "Overloaded assignment\n";
Class tmp{ other };
return *this = std::move(tmp);
}
int main()
{
Class a;
Class b;
a = b;
}
|