0

我从 C++ 开始,但我无法弄清楚。我有三个类,正在尝试实现一个队列。(不管它现在是否有效,我只需要修复这个错误)

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

队列.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()其次,您必须在 的实例上调用函数queue,而不是在类本身上调用函数(如果函数是static就是这种情况,但在这种情况下您将使用::而不是.)。所以:

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