【发布时间】:2013-04-15 19:28:36
【问题描述】:
这是对Using vectors to store different objects inherited from the same parent class c++ 的跟进,但您无需阅读即可理解。
我有一个多项式类和另一个类是容器类。在容器类中有一个包含多项式指针的向量。 我以这种方式定义了vectorPolynomial:
std::vector<std::unique_ptr<Polynomial>> vectorPolynomial;
在多项式类中有一个二元运算符,它执行一个运算,该运算采用两个多项式并返回一个多项式本身的结果。
在多态之前,操作符返回了一个多项式类型的对象,我只是这样做了:
Polynomial polynomialresult = polynomial1 % polynomial2;
vectorPolynomial.push_back(polynomialresult);
现在,由于向量不再是多项式向量,因此这将不起作用。这是我尝试过的:
std::unique_ptr<Polynomial> result(new Polynomial);
*result = *(vectorPolynomial[i]) % *(vectorPolynomial[j]);
vectorPolynomial.emplace_back(result);
这不起作用。我也试过了:
Polynomial * result = new Polynomial;
而不是 unique_ptr 但它也不起作用。 push_back 而不是 emplace_back 也不起作用。
这通常是如何完成的?
【问题讨论】: