移动构造函数和移动赋值运算符

如果第二个对象是在复制或赋值结束后被销毁的临时对象,则调用移动构造函数和移动赋值运算符,这样的好处是避免深度复制,提高效率。 为了直观地观察移动构造函数和移动

如果第二个对象是在复制或赋值结束后被销毁的临时对象,则调用移动构造函数和移动赋值运算符,这样的好处是避免深度复制,提高效率

为了直观地观察移动构造函数和移动赋值运算符的运行方式,编写一个类Pointer,该类的对象会在堆动态创建一个数组。

代码如下:

class Pointer
{
public:Pointer(const int i,const string &n){ mptr = new int[i]; length = i;name = n;cout <<"带参数构造函数\n";showID(); }Pointer() :mptr(nullptr), length(0){ cout << "无参数构造函数\n"; showID(); }virtual ~Pointer(){cout <