问题描述
我正在尝试用 C++ 实现设计模式策略。 我的目标是对 2 个数字进行运算。
这是我的上下文类
operation::operation(std::unique_ptr<calculatorTask> pTask = nullptr)
{
pCalculatorTask = std::move(pTask);
}
operation::~operation();
{
}
void operation::setTask(std::unique_ptr<calculatorTask> pTask)
{
this->pCalculatorTask = std::move(pTask);
}
void operation::executeTask(numberMsg& sValues)
{
pCalculatorTask->calculate(values);
}
这是我的实现:
int main()
{
std::vector<std::unique_ptr<calculatorTask>> myOperation;
myOperation.push_back(std::move(std::unique_ptr<additionTask>(new additionTask())));
myOperation.push_back(std::move(std::unique_ptr<substractionTask>(new substractionTask())));
for (const auto &Ope : myOperation)
{
pOpe->setTask(Ope);
[...]
}
}
错误:使用已删除的函数‘std::unique_ptr<_tp _dp>::unique_ptr(const std::unique_ptr<_tp _dp>&) [with _Tp =calculatorTask; _Dp = std::default_delete]' pOpe->setTask(Ope);
我不明白错误以及如何修复它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)