0

まず、私のコードは次のとおりです。

ヘッダーファイルの一部:

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;
    }

}

ただし、問題は次の2行のコードにあります。

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>に変換できませんコンテキストでは、オーバーロードされた関数の明確化はできません

2行目では、newNodeが再び宣言されていないことを示しています。

ここでの問題は何ですか?:(リンクリストの構造体に値を配置しようとしています。もう少しコーディングした後、2つの値を入力するたびに新しいリンクリストを作成したいと思います。

4

1 に答える 1

1

を宣言したことはなく、型ではなく変数ですnextpolyである必要がありpolynomial *polyますpoly = new polynomial(input1, input2, next);

于 2013-02-15T00:02:09.457 に答える