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

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

为了直观地观察移动构造函数和移动赋值运算符的运行方式,编写一个类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 <


运行结果如下:

移动构造函数和移动赋值运算符_第1张图片

你可能感兴趣的:(c++)