Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 语法错误:缺少'';在'之前<';_C++_Syntax Error - Fatal编程技术网

C++ 语法错误:缺少'';在'之前<';

C++ 语法错误:缺少'';在'之前<';,c++,syntax-error,C++,Syntax Error,错误行4 及 (第53行):请参阅对正在编译的类模板实例化“ArrayStack”的引用 #ifndef ARRAYSTACK #define ARRAYSTACK template <typename T> class ArrayStack: public Stack<T> { private: T* data; int top; int size; public: ArrayStack(){ top = 0;

错误行4 及 (第53行):请参阅对正在编译的类模板实例化“ArrayStack”的引用

#ifndef ARRAYSTACK
#define ARRAYSTACK
template <typename T>
class ArrayStack: public Stack<T>
{

private:
    T* data;
    int top;
    int size;
public:
    ArrayStack(){
         top = 0;
         data = new T[10];
         size = 10;
    }

    ~ArrayStack(){
        delete[] data;
    }
    void push(const T &t){
        if(top==size-1){
            T* data2 = new T[(size*size)];

            for(int i=0; i<size; size++){
                data2[i] = data[i];
            }
            *data = *data2;

            data[top+1] = t;
            size= size*size;
            top = top+1;
        }
        else{ data[top+1] = t; top = top+1;}

    }
    T pop() {
        if(this.isEmpty==true){
            throw std:: out_of_range " The stack is empty";
        }
        else{
            return data[top];
            top = top-1;
        }
    }
    T peek() const{
        return data[top];   
    }
     bool isEmpty(){
        if(top==0) return true;
        else return false;
    }

};

#endif
\ifndef ARRAYSTACK
#定义阵列堆栈
模板
类ArrayStack:公共堆栈
{
私人:
T*数据;
int top;
整数大小;
公众:
ArrayStack(){
top=0;
数据=新的T[10];
尺寸=10;
}
~ArrayStack(){
删除[]数据;
}
无效推力(常数T&T){
如果(顶部==尺寸-1){
T*data2=新的T[(尺寸*尺寸)];

对于(int i=0;我这里定义了
堆栈
定义?包括该头文件。我猜您正在使用msvc,忘记在另一个头文件的类/结构/枚举的定义末尾添加分号。堆栈
的定义在哪里?您没有
\Include
的定义,所以这将是一个问题。您知道吗在尝试
将std::抛出\u范围“堆栈为空”时也会遇到问题;
首先是因为您没有包含
stdexcept
,其次是因为语法错误。向我们显示代码时,向我们显示所有相关代码。错误很可能出现在标题中(忘记关闭类声明?)谢谢大家把它弄明白了。忘了把我的书堆放进去。h谢谢你,亚尔
    #ifndef STACK
    #define STACK
    template <typename T>
    class Stack {
public:
    virtual ~Stack() {}
    virtual void push(const T &t) = 0;
    virtual T pop() = 0;
    virtual T peek() const = 0;
    virtual bool isEmpty() const = 0;
    };
    #endif