如何解决在 C++ 中实现策略模式的错误
我正在尝试用 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 举报,一经查实,本站将立刻删除。