【发布时间】:2012-04-19 21:24:50
【问题描述】:
我有:
Command *command;
if(commandType == "Start")
{
command = new StartCommand();
}
else if (commandType == "Stop")
{
command = new StopCommand();
}
现在假设我想让command 成为一个shared_ptr,我该如何翻译上面的代码来使用一个shared_ptr?
【问题讨论】:
-
用
shared_ptr<Command>替换Command*? (最好是new XXXCommand()和make_shared<XXXCommand>()。) -
std::shared_ptr<Command> command;,然后在分配的时候,做command.reset(new StartCommand)(或者另外一个)? -
@birryree:谢谢,我想这是我正在寻找的重置功能。
标签: c++ constructor shared-ptr