「dualstk.h」で
#ifndef __32_dualstk_h
#define __32_dualstk_h
#include <deque>
#include <cstdlib>
#include <iostream>
using namespace std;
enum stackNumber {One, Two};
template <class T>
class DualStack{
public:
DualStack() {count1 = 0; count2 = 0;};
//constructor. set counts to 0
void push(const T& item, stackNumber n);
void pop(stackNumber n);
T& top(stackNumber n);
const T& top(stackNumber n) const;
bool empty(stackNumber n) const;
int size(stackNumber n) const;
private:
deque<T> dualstackElements;
int count1, count2;
};
//error here
void DualStack::pop(stackNumber n){
}
#endif
なぜこのエラーを引っ張っているのか分かりますか? 最も奇妙なのは、これが本「Data Structures with C++ using STL」コードであり、関数を単純に実装するため、この部分は正しいはずであると述べていることです。
最も基本的な関数を実装しようとすると、「クラスまたは名前空間が必要です」というエラーが表示されます。