Ошибка компоновщика LNK2019 при попытке скомпилировать прогу с объявлениями шаблонов - PullRequest
0 голосов
/ 19 февраля 2010

Вот код

    #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 Ответ

1 голос
/ 19 февраля 2010

Вам нужно определить конструктор и деструктор (вы только что объявили их):

template <typename T> class grid
{
public:
    grid()
    {}    // here
    ~grid()
    {}    // and here
    void createCells();
private:
    T **cells;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...