【发布时间】:2013-07-27 22:55:15
【问题描述】:
例如,我有一个班级
class A
{
public:
// argument with default value is too long, any better way
A(std::unique_ptr<int> data = std::unique_ptr<int>(new int(10)))
: mData(std::move(data))
{}
// Is r-value better? Is the following code okay?
A(std::unique_ptr<int>&& data = std::unique_ptr<int>(new int(10)))
: mData(data)
{}
private:
std::unique_ptr<int> mData;
};
【问题讨论】:
-
你可以有一个默认构造函数:
A(): mData(new int(10)) {} -
您想要更短的代码吗?第二个构造函数将只接受 r 值,数据将被复制,而不是像在第一个构造函数中那样显式移动到 mData
标签: c++ constructor unique-ptr