我已經梳理了谷歌和堆棧溢出,尋找這個問題的答案。我知道這是超級基本的,我真的很惱火,我無法弄清楚什麼是錯的。所以我的研究生教授希望我們爲整數實現一個隊列。爲什麼?因爲這是「程序設計原理」,所以我們基本上都會通過超級簡明的定義來檢查單個細節。老實說,這是我必須接受的三個小時課程中最大的浪費,但至少老師是好的。不管怎麼說,我有在.h文件中的類定義,其中包含使用頭文件來創建一個ADT:類之外的'int Queue :: size()'的聲明不是定義[-fpermissive]
#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.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,並得到相同的編譯錯誤。
作爲一般規則,它有助於在有關編譯錯誤的問題中包含編譯錯誤。 –
我會的,我已經將它包含在帖子的標題中,所以我不想成爲多餘的。 編輯:如果有人試圖谷歌編譯錯誤,這種方式更可能出現在谷歌所以也許他們也可以得到幫助呢? –