c++ - 期望一个类或命名空间;语法正确

标签 c++ class enums namespaces

在“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/

相关文章:

php - 类外定义的方法?

swift - 如何通过忽略 Swift 中的关联值来比较枚举与关联值?

c++ - 将数组的内容复制到 C++ 中调整大小的数组

c++ - 使用委托(delegate)构造函数来避免泄漏

ruby - ruby 中的 if 语句,以确定输入类型

python - python 类中的条件

c++ - 从枚举中获取所有值

C编程问题无关变量在使用STRCPY后被覆盖

c++ - 如何编译 Boost.Process 库?

c++ - 回调例程未被触发