移动构造

class Integer {
private:
	int* m_ptr;
public:
	Integer(int value)
		: m_ptr(new int(value))
	{
		cout << "有参构造" << endl;
	}

	Integer(const Integer& p)
		: m_ptr(new int(*p.m_ptr))
	{
		cout << "拷贝" << endl;
	}

	Integer(Integer&& p)
		: m_ptr(p.m_ptr)
	{
		p.m_ptr = nullptr;
		cout << "移动" << endl;
	}

	static Integer getNum(int value);
};

Integer Integer:: getNum(int value)
{
	Integer a(value);
	return a;
}

void main()
{
	Integer a(Integer::getNum(100));
}

// 有参
// 移动
Table of Contents