创建链接列表的问题

时间:2013-02-14 23:59:04

标签: c++ class pointers

首先,这是我的代码:

标头文件的一部分:

struct polynomial
{ 
    polynomial();
    polynomial(string newCoefficient, string newPower, polynomial *nextPtr);
    string coefficient;
    string power;
    polynomial *next; 
};

class linkedList
{
public:
    void makeList();
private:
    polynomial *head;
};

.cpp文件:

polynomial:: polynomial ( string newCoefficient, string newPower, polynomial *nextPtr )
    :
coefficient(newCoefficient),
    power(newPower), 
    next(nextPtr) 

{}

void linkedList::makeList()
{
    polynomial poly; 

    string input1, input2; 
    cin >> input1; 
    cin >> input2;

    while (input1 != "-999" && input2 != "-999") 
    { 
        poly *newNode = new polynomial (input1, input2, next); 
        next = newNode; 
        cin >> input1;
        cin >> input2;
    }

}

然而,问题在于这两行代码:

poly *newNode = new polynomial (input1, input2, next); 
next = newNode; 

在第一行中,它表示newNode是未声明的标识符。它还说:

多项式::多项式(std :: string,std :: string,polynomial *)':无法从' InIt( _cdecl *)转换参数3(_ InIt,iterator_traits< _Iter> :: difference_type)'到'多项式*' 1 GT;上下文不允许消除重载函数的歧义

在第二行中,它表示newNode再次未申报。

这是什么问题? :(我正在尝试将值放在链表中的结构中。在编码了一点之后,我想在输入两个值时创建一个新的链表。

1 个答案:

答案 0 :(得分:1)

您从未声明nextpoly是变量,而不是类型。应该是polynomial *poly,然后是poly = new polynomial(input1, input2, next);