-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmyclass.cpp
More file actions
41 lines (36 loc) · 854 Bytes
/
myclass.cpp
File metadata and controls
41 lines (36 loc) · 854 Bytes
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
#include <iostream>
#include <string>
using std::cout;
using std::endl;
class MyClass {
public:
MyClass() { cout << "MyClass()" << endl; }
MyClass(const MyClass &) { cout << "MyClass(const MyClass&)" << endl; }
MyClass(MyClass &&other) {
cout << "MyClass(MyClass&&)" << endl;
other.foo();
}
MyClass &operator=(const MyClass &other) {
cout << "=" << endl;
return *this;
}
MyClass &operator=(MyClass &&other) {
cout << "=&&" << endl;
return *this;
}
void foo() { cout << "foo" << endl; }
~MyClass() { cout << "~MyClass" << endl; }
};
bool my_bool_func() { return true; }
int main() {
MyClass mc;
mc = mc;
cout << "mc2:" << endl;
mc = std::move(mc);
cout << "mc3:" << endl;
MyClass mc3((MyClass()));
mc3.foo();
cout << "mc4:" << endl;
MyClass mc4(std::move(mc));
cout << "kuk" << endl;
}