解决方案我必须写<script>
$(function(){
$('.navbar-right li').click(function(){
$(this).addClass('active').siblings().removeClass('active');
});
})
</script>
,另外,我必须将#include "polynomial.h"
作为对P
的引用。
我有一个名为addPolynomial
的类,其成员变量为Function
。
vector<functionSegment*> functionParts
有两个派生类,分别为functionSegment
和Polynomial
。
编辑函数Exponential
是一个声明为
的函数
addPolynomial
在void Function::addPolynomial(Polynomial* P, ifstream& input)
中,我有以下内容:
main
编辑重新检查Polynomial* P; //I made a constructor that takes no arguments
mainFunction.addPolynomial(P, input); //All that changes is the thing P is pointing to: NOTHING ELSE is changed
(mainFunction.functionParts).push_back(P); //This gives problems
函数后,我发现第二条评论并非完全正确:addPolynomial
确实是P
- ed。因此,我应该在new
中编写Polynomial* P = new Polynomial
并使用复制构造函数,或者通过引用传递main
。我选择做后者。
错误是:
P
显然,no matching function for call to 'std::vector<functionSegment*>::push_back(Polynomial*&)'
candidates are:
void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = functionSegment*; _Alloc = std::allocator<functionSegment*>; std::vector<_Tp, _Alloc>::value_type = functionSegment*]|
no known conversion from argument 1 from 'Polynomial*' to 'functionSegment* const&'
需要push_back
,但它会收到functionSegment* const&
。由于Polynomial*
属于类型
Polynomial
,问题是我们需要functionSegment
。这是有道理的,因为它更有效率。但接下来我该怎么办?
const*& Polynomial
是指向Polynomial对象的指针,因此我们需要对指针的引用。
P
无效。
答案 0 :(得分:1)
首先Polynomial* P;
需要Polynomial* P = new Polynomial;
,除非addPolynomial
将P视为Polynomial *&
并指定new
ed Polynomial
。< / p>
现在提出问题。您忘记公开继承functionSegment
或忘记包含标题,并向前声明了类型。