Я написал шаблонный класс, который расширяет список STL для некоторого использования. Я объявляю этот класс в заголовочном файле и определяю его в файле cpp. Однако, когда я попытался протестировать его в другом файле cpp, я обнаружил, что Visual Studio не может связать функции с файлом cpp.
Я знаю, что могу решить эту проблему, просто включив файл cpp, но мне интересно, есть ли другой способ, лучший способ?
Если вам потребуется дополнительная информация о моем коде, я предоставлю заголовочный файл класса шаблона "KA_Buffer.h" и основную программу "main.cpp" ниже.
KA_Buffer.h:
* * 1010
main.cpp:
#include <iostream>
#include <Windows.h>
#include "KA_Buffer.h"
int main()
{
KA_Buffer<int> buffer(5);
for (int i = 0; i < 10; i++)
{
buffer.add(i);
for (KA_Buffer<int>::iterator iter = buffer.begin();
iter != buffer.end(); iter++)
{
std::cout<<*iter<<" ";
}
std::cout<<std::endl;
}
system("pause");
return 0;
}
Сообщения об ошибках:
1> main.obj: ошибка LNK2019: неразрешенный внешний символ «public: void __thiscall KA_Buffer :: add (int)» (? Add @? $ KA_Buffer @ H @@ QAEXH @ Z), указанный в функции _main