none
error LNK2001: 无法解析的外部符号 RRS feed

  • 问题

  • 代码如下

    我创建了三个文件 :

    stack.h

    #define stacksize 200
    template <class T>
    class stack
    {
    public:
    stack();
    //~stack();
    bool push(T);
    T pop();
    void flush();
    bool isfull();
    bool isempty();
    private:
    T buffer[stacksize];
    int p;
    };

    stack.cpp

    #include"stack.h"

    template <class T>
    stack<T>::stack() 
    {
    p = -1;
    };

    template <class T>

    bool stack<T>::push(T t)
    {
    if (!isfull())
    buffer[++p] = t;
    };

    template <class T>
    T stack<T>::pop()
    {
    if (!isempty())
    return buffer[p--];
    else
    return null;
    };

    template <class T>
    bool stack<T>::isfull()
    {
    if (p == stacksize - 1)
    return true;
    return false;
    };

    template <class T>
    bool stack<T>::isempty()
    {
    if (p == -1)
    return true;
    return false;
    };


    template <class T>
    void stack<T>::flush()
    {
    p = -1;
    };

    main.cpp:

    #include<iostream>
    #include"stack.h"
    using namespace std;
    void main()
    {
    stack<int> abc;
    cout<< abc.isempty();
    getchar();
    };

    出现了标题所述的错误;但是呢我将main.cpp中的#inlcude"stack.h"改为#include“stack.cpp”能够编译运行;

    不知道哪里出了什么问题;是不是该引入lib,但是我不知道该引入什么

    2015年4月26日 15:32

答案

全部回复