移动构造
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));
}
// 有参
// 移动