尝试使用模板声明编译prog时链接器错误LNK2019

时间:2010-02-19 07:20:45

标签: c++ visual-c++

这里是代码

    #include <iostream>
    #include <conio.h>

    using namespace std;

    template <typename T> class grid
    {
    public:
        grid();
        ~grid();
        void createCells();
    private:
        T **cells;
    };

 int main(int argc, char **argv)
    {
        grid<int> intGrid;
        _getch();
        return 0;
    }

在尝试编译时 - 得到了一条消息:

1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall
grid<int>::~grid<int>(void)" (??1?$grid@H@@QAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall 
grid<int>::grid<int>(void)" (??0?$grid@H@@QAE@XZ) referenced in function _main

需要做什么?

1 个答案:

答案 0 :(得分:1)

您需要定义构造函数和析构函数(您刚刚声明它们):

template <typename T> class grid
{
public:
    grid()
    {}    // here
    ~grid()
    {}    // and here
    void createCells();
private:
    T **cells;
};