用C ++实现堆栈

时间:2014-02-19 09:08:59

标签: c++ visual-c++ stack

我正在使用没有STL库的C ++实现堆栈。

这是我的Header文件的代码

// File: stack.h: header file
#ifndef STACK_H           
#define STACK_H   

class Stack {
    int MaxStack;
    int EmptyStack;
    int top;
    int* items;
    public:
    Stack(int);                  // Constructor
    ~Stack();                   //Destructor

    //Member Functions
    void push(int);
    char pop();
    int empty();
    int full();
};
#endif // STACK_H

和Cpp文件

// File: stack.cpp: stack functions


#include "stack.h"

using namespace std;



// Constructor with argument
Stack::Stack(int size) {
    MaxStack = size;
    EmptyStack = -1;
    top = EmptyStack;
    items = new int[MaxStack];
}
// Destructor
Stack::~Stack() { delete[] items; }

void Stack::push(int c) {
    items[++top] = c;
}

char Stack::pop() {
    return items[top--];
}

// Test for Full stack
int Stack::full()  {
    return top + 1 == MaxStack;
}

// Test for Empty stack
int Stack::empty()  {
    return top == EmptyStack;
}

在我运行它之前制作一个主要测试类之前,我得到了这两个错误

!(http://postimg.org/image/pnjzd9axt/

如何解决这两个错误的任何帮助?!

提前致谢

2 个答案:

答案 0 :(得分:2)

错误表明您没有主要功能。

错误如: Unresolved external symbol是编译器的说法:我想要X函数,我希望它被声明但我在编译和链接的模块中找不到它

答案 1 :(得分:1)

主要功能未定义。

将以下内容添加到源代码中:int main() { return 0; }

如Emil所示,编译器无法找到main函数的定义。