在“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》一书的代码,它说这部分应该是正确的,因为我们只是简单地实现函数。
当我去实现一个最基本的功能时,我得到了错误:“Expected a class or namespace。”
最佳答案
DualStack
是一个模板,因此您需要在函数实现上使用模板语法。
template <class T>
void DualStack<T>::pop(stackNumber n){
}
关于c++ - 期望一个类或命名空间;语法正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237487/