Person(Person&& p) = default;
class Person
{
public:
Person(const char* name = "", int age = 0)
:_name(name)
, _age(age)
{}
Person(const Person& p) //我们手动写了拷贝构造
:_name(p._name)
, _age(p._age)
{}
Person(Person&& p) = default; //此时移动构造仍然会生成
private:
bit::string _name;
int _age;
};
int main()
{
Person s1;
Person s2 = s1;
Person s3 = std::move(s1);
return 0;
}
class Person
{
public:
Person(const char* name = "", int age = 0)
:_name(name)
, _age(age)
{}
//此时我们没有写析构函数 、拷贝构造、拷贝赋值重载 ,编译器理应默认生成移动构造
Person(Person&& p) = delete; //此时移动构造不会生成
private:
bit::string _name;
int _age;
};
int main()
{
Person s1;
Person s2 = s1;
Person s3 = std::move(s1);
return 0;
}