在我从前一个问题的答案中提示之后编写了一些东西,我遇到了重载Scene :: addObject的问题.
重申相关位并使其自包含,尽可能少的细节:
Interface,其中有FooS和BarS;Scene拥有这些物品的人;Foos应该是unique_ptrs和Bars将shared_ptr在我的主要(由于前一个问题中解释的原因);main它们传递到Scene实例,其取得所有权.最小的代码示例是这样的:
#include <memory>
#include <utility>
class Interface
{
public:
virtual ~Interface() = 0;
};
inline Interface::~Interface() {}
class Foo : public Interface
{
};
class Bar : public Interface
{
};
class Scene
{
public:
void addObject(std::unique_ptr<Interface> obj);
// void addObject(std::shared_ptr<Interface> obj);
};
void Scene::addObject(std::unique_ptr<Interface> obj)
{
}
//void …Run Code Online (Sandbox Code Playgroud)