我有这样的代码:
#include <memory>
#include <vector>
namespace daq
{
class Animal
{
public:
Animal(){};
};
class Pig : public Animal
{
public:
Pig() : Animal () {};
};
class Farm
{
public:
void addAnimal(Animal& animal)
{
mAnimals.push_back(std::unique_ptr<Animal>(animal)); // error
}
private:
std::vector<std::unique_ptr<Animal>> mAnimals;
};
} /* namespace daq */
但是我在方法 Farm::addAnimal 中遇到错误:
没有匹配函数调用'std::unique_ptr::unique_ptr(daq::Animal&)'</p>
我应该将什么传递给 push_back 方法?