我已经通过Google和Stack Overflow进行了梳理,寻找这个问题的答案。我知道这是超级基本的,我真的很烦,我无法弄清楚出了什么问题。所以我的研究生教授希望我们为整数队列实现一个队列。为什么?因为这是"编程原理"而且我们基本上会用超简洁的定义来浏览一些细节。老实说,这是我曾经不得不采取的三小时课程中最大的浪费,但至少老师是好的。无论如何,我在.h文件中得到了类定义,其中包含
#ifndef QUEUE_H
#define QUEUE_H
class Queue
{
private:
std::vector<int> myQueue;
public:
int push(int);
int pop_front();
int size();
bool empty();
};
#endif
那么,我觉得Queue :: size()和Queue :: empty被声明了吗?好吧,在我的queue.cpp文件中,我已经了解了这些函数的详细信息......
#include <vector>
#include "queue.h"
int Queue::push(int intToPush)
{
myQueue.push_back(intToPush);
return 0;
};
int Queue::pop_front()
{
int front = myQueue.front();
myQueue.erase(myQueue.begin());
return front;
};
/*
int Queue::size(); <- It was these semicolons
{
return myQueue.size();
};
bool Queue::empty(); <- This one too.
{
return myQueue.empty();
};*/
当我像这样编译它时,它确实很好,但是当我包含我已经注释掉的那两个时,它会给出我在这篇文章标题中输入的错误。
我真的很抱歉这是如此基本和愚蠢,但我找不到任何可以帮助我的东西,让我感到困惑的是,这些函数导致编译器说他们被宣布为班级。我尝试使用泛型返回0和false,并获得相同的编译错误。
答案 0 :(得分:1)
从cpp文件中的函数名末尾删除分号,然后再次尝试编译。您还可以删除所有函数定义的终止括号后面的分号。它们不是必需的。