我有一个像
void Element::setNodes(const BaseClass& input0, const BaseClass& input1)
这是通过传递派生类来调用的。
setInputNodes(DerivedClass1, DerivedClass2)
我遇到的麻烦是我想将节点存储在向量中。我有这个
std::vector<std::shared_ptr<BaseClass>> m_inputNode;
和函数为
void Element::setNodes(const BaseClass& input0, const BaseClass& input1)
{
m_inputNode.push_back(input0);
m_inputNode.push_back(input1);
}
这不起作用,我必须将其存储为指针,否则我会遇到对象切片。我需要更改 API 并传递指针吗?我想尽可能少地改变。