0

私はC++から始めていますが、これを理解することはできません。3つのクラスがあり、キューを実装しようとしています。(それが機能するかどうかは関係ありません、私はこのエラーを修正する必要があります)

#include <cstdlib>
#include <iostream>
#include "queue.h"

using namespace std;

int main(int argc, char** argv) {

    queue fronta();

    queue.add(10); // <- expected unqualified-id before ‘.’ token
}

queue.h:

#ifndef QUEUE_H
#define QUEUE_H

#include "queueItem.h"

class queue {
private:
    queueItem* first;
    queueItem* last;

public:
    queue();
    void add(int number);
    int get(void);
    bool isEmpty();
};

#endif  /* QUEUE_H */

queueItem.h:

#ifndef QUEUEITEM_H
#define QUEUEITEM_H

class queueItem{
private:
    int value;
    queueItem* next;

public:
    queueItem(int value);

    int getValue();
    queueItem* getNext();
    void setNext(queueItem* next);
};

#endif  /* QUEUEITEM_H */

私がググったものから、それは通常、無関係なセミコロン、ブラケットなどに関連しています。でも何も見つかりませんでした

手伝ってくれてありがとう

4

2 に答える 2

2

.add()クラスタイプを呼び出すことはできませんqueue。作成したオブジェクトで呼び出す必要があります。あなたの場合、それはですfronta.add(10);

また、作成するための構文frontaが間違っています。を使用しqueue fronta;ます。

于 2013-02-17T16:06:04.373 に答える
2

この行queue fronta();は、型のオブジェクトを返し、queue引数をとらない関数を宣言しています。これはおそらくあなたが望むものではありません。queue fronta;代わりに使用してください。

次に、クラス自体ではなくadd()、のインスタンスで関数を呼び出す必要があります(関数がの場合はそうですが、その場合は代わりにを使用します)。したがって:queuestatic::.

queue.add(10); // ERROR!
fronta.add(10); // OK
于 2013-02-17T16:07:00.597 に答える