Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Visual C++ / С/C++ (https://nowa.cc/forumdisplay.php?f=302)
-   -   Помогите разобраться, почему возникает ошибка линковки (https://nowa.cc/showthread.php?t=335277)

redredfox 18.06.2011 21:13

Помогите разобраться, почему возникает ошибка линковки
 
Вот есть такой простенький проект из трех простеньких файлов, компилирую под Microsoft Visual C++.

Файл MyClass.h
Код:

class MyClass
{
public:
        int i;
        template <class T>MyClass(const T&);
};

Файл MyClass.cpp:
Код:

#include "MyClass.h"

template <class T>
MyClass::MyClass(const T&)
{
        i=sizeof(T);
};

Файл main.cpp:
Код:

#include "MyClass.h"

MyClass * MC;

void MyClassInit()
{
        short T5=0;
        MC=new MyClass(T5);
};

int main()
{
        MyClassInit();
        delete MC;
        return 0;
}

Если не использовать шаблон, то компиляция происходит без ошибок.
Но шаблон использовать необходимо, тк приведенный код является частью одного большого проекта, где без шаблонов не обойтись.

Благодарю за предложенное решение вопроса.

zss 21.06.2011 15:04

Re: Помогите разобраться, почему возникает ошибка линковки
 
У меня в Visual Studio 2008 все компилируется, линкуется и исполняется без ошибок,
если весь код написать в одном файле.
Шаблон компилятор только просматривает и не формирует код, поэтому надо
содержимое файла MyClacc.cpp перенести в заголовочный файл.

Phantom555 07.07.2011 17:56

Re: Помогите разобраться, почему возникает ошибка линковки
 
MyClass<int> * MC;


Текущее время: 22:02. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.01927 секунды с 9 запросами