mirror of
https://github.com/Light-City/CPlusPlusThings.git
synced 2026-02-07 04:24:15 +08:00
support bazel complie this project and format code.
This commit is contained in:
48
learn_class/modern_cpp_30/obj/obj3.cpp
Normal file
48
learn_class/modern_cpp_30/obj/obj3.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// Created by light on 19-12-22.
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// Can copy and move
|
||||
class A {
|
||||
public:
|
||||
A() { cout << "Create A\n"; }
|
||||
|
||||
~A() { cout << "Destroy A\n"; }
|
||||
|
||||
A(const A &) { cout << "Copy A\n"; }
|
||||
|
||||
A(A &&) { cout << "Move A\n"; }
|
||||
|
||||
A &operator=(const A &a) {
|
||||
std::cout << "copy assignment" << std::endl;
|
||||
return *this;
|
||||
}
|
||||
|
||||
A &operator=(A &&a) {
|
||||
cout << "move assignment\n";
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
// 编译器无法优化
|
||||
A getA_duang() {
|
||||
A a1;
|
||||
A a2;
|
||||
if (rand() > 42) {
|
||||
return a1;
|
||||
} else {
|
||||
return a2;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
// cout<<"拷贝"<<endl;
|
||||
// auto a = getA_duang();
|
||||
|
||||
cout << "赋值" << endl;
|
||||
A aa;
|
||||
aa = getA_duang();
|
||||
}
|
||||
Reference in New Issue
Block a user