dimanche 2 avril 2017

Conversion errors? (i.e '!=' no conversion FDHPolynomial from 'nullptr' to 'int')

I was making this add function definition but I keep getting these conversion errors and I think I called a class or function wrong but I do not really understand or can find what's causing the errors. (Sorry about the long function, I tried to cut it down)

template<class ItemType>
bool FDHPolynomial<ItemType>::add(const ItemType& newCoefficient, const   ItemType& newExponent)
{
if (newCoefficient == 0)//not wasting memory to store 0
{
    return false;//no node added
}
else if (isEmpty())//if this is the first node added
{
    FDHNode<ItemType>* newNodePtr = new FDHNode<ItemType>();//create new node
    newNodePtr->setCoeffi(newCoefficient);//set contents
    newNodePtr->setExpon(newExponent);
    newNodePtr->setNext(nullptr);//since this is the only node, next value is nullptr

    headPtr = newNodePtr;//first node is the head node

    itemCount++;
}
else if (contains(newExponent))//if a node of this degree exists, add to its exponent
{
    FDHNode<ItemType>* nodeToModifyPtr = getPointedTo(newExponent);//find the existing node
    ItemType sumCoefficient = newCoefficient + nodeToModifyPtr->getCoeffi();//add new coefficient to existing coefficient

    if (sumCoefficient == 0)//if added value cancels out a value
    {
        remove(newExponent);
    }
    else
    {
        nodeToModifyPtr->setCoeffi(sumCoefficient);//apply sum of coefficients
    }

    //itemCount does not increment
}
else if (newExponent > degree())//if new exponent is greater than any existing exponents
{
    FDHNode<ItemType>* newNodePtr = new FDHNode<ItemType>();//create new node
    newNodePtr->setCoeffi(newCoefficient);//set contents
    newNodePtr->setExpon(newExponent);

    newNodePtr->setNext(headPtr);//place at front of the chain

    headPtr = newNodePtr;//new node is now the head node

    itemCount++;
}
else//if new node needs to be inserted somewhere after the head node
{
    FDHNode<ItemType>* newNodePtr = new FDHNode<ItemType>();//create new node
    newNodePtr->setCoeffi(newCoefficient);//set contents
    newNodePtr->setExpon(newExponent);

    FDHNode<ItemType>* curPtr = headPtr;//this pointer will cycle through       nodes until either a node with a degree smaller than newExponent is found or the last node is reached

    while ((curPtr->getExpon() > newExponent) && (curPtr->getNext() != nullptr))
    {
        curPtr = curPtr->getNext();//advance curPtr
    }

Aucun commentaire:

Enregistrer un commentaire