构造函数形参默认值,用make_unique创建对象,形参默认值失效

问题遇到的现象和发生背景

构造函数形参默认值,用make_unique创建对象,形参默认值失效。而改为new就可以

问题相关代码,请勿粘贴截图
class VBase
{

public:
    VBase(){}
    virtual ~VBase(){}
public:
    virtual void Handle() = 0;
protected:

};

class Transfer : public VBase
{

public:
    Transfer(const int& currDate = 20220209):m_currDate(currDate)
    {
        std::cout << m_currDate << std::endl;//此处有值20220209
    }
    ~Transfer(){}

    virtual void Handle()
    {
        std::cout << m_currDate << std::endl;//值为0
    }

private:
    const int& m_currDate;

};

int main()
{
    std::unique_ptr<VBase> pTrans = std::make_unique<Transfer>();
    pTrans->Handle();
    return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

make_unique怎么配合形参默认值使用

构造函数中不放参数的时候,调用的是默认构造函数,需哟你在Transfer类中重写无参构造函数。
Transfer构造函数改成下面的

Transfer(const int& currDate):m_currDate(currDate)
{
    std::cout << m_currDate << std::endl;//此处有值20220209
}

Transfer():m_currDate(20220209)
{
    std::cout << m_currDate << std::endl;//此处有值20220209
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632