首先,这是我的代码:
头文件的一部分:
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 是一个未声明的标识符。它还说:
Polynomial::polynomial(std::string,std::string,polynomial *)' : 无法将参数 3 从 ' InIt ( _cdecl *)(_InIt,iterator_traits<_Iter>::difference_type)' 转换为 'polynomial *' 1>上下文不允许消除重载函数的歧义
在第二行,它说 newNode 再次未声明。
这里有什么问题?:( 我正在尝试将值放在链表中的结构中。在编码更多之后,我想在输入两个值时创建一个新的链表。