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
| #include <iostream>
using namespace std;
class base { public: base() = default; base(base &){ cout << "base: copy constructor" << endl; } base(base &&) noexcept{ cout << "base: move constructor" << endl; } }; class derived:public base { public: derived() = default; derived(derived & param):base(param){ cout << "derived: copy constructor" << endl; } derived(derived && param) noexcept :base(std::move(param)){ cout << "derived: move constructor" << endl; } }; int main() { derived c; derived d = c;
derived e = std::move(c); return 0; }
|