与赋值构造函数和复制构造函数不同,假设有指针的情况,这两个函数都是深拷贝
而移动构造和移动赋值是浅拷贝,还会吧之前的指针指为空,防止析构函数执行的时候清空内存
移动构造和移动赋值可以节约性能,而且是针对右值引用,
#include <iostream>
#include <string>
#include<cstring>
using namespace std;
class A{
int x;
char* ptr_;
public:
A(int i=0,char* ptr= nullptr):x(i),ptr_(ptr){
cout<<"gouzao"<<endl;
};