我的方法构造函数接受模板参数值,并且我知道可以通过在每个方法前面加上
来在实现文件(.cpp)中使用模板template<class T>;
classname<T>::memberfunction(){
}
当我将构造函数的定义与类定义放在一起时,不会显示错误。出于学习目的,我想将实现放在单独的文件.cpp
中我收到此错误:
严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“ public:__ cdecl myclass :: myclass(int)“(?? 0?$ myclass @ H @@ QEAA @ H @ Z)被引用 在功能上 主ConsoleTestProject C:\ Users \ Winux \ Desktop \ MINE \ Project \ Lab1 \ ConsoleTestSolution \ ConsoleTestProject \ ConsoleTestProject.obj 1
您如何正确地将实现文件放入cpp文件中?
我看到了类似的建议问题,但并非特定于我的错误和问题。 这是有关如何重新创建错误的简单代码。为了简单起见,我没有包含该字段的getter和setter。
myclass.h
#pragma once
#ifndef myclass_h
#define myclass_h
template <class Type>
class myclass
{
private:
Type value;
public:
myclass(Type value);
};
#endif
myclass.cpp
#include "myclass.h"
template <class Type>
tree<Type>::myclass(Type value)
{
this->value = value;
}
mysample.cpp
#include <iostream>
#include "myclass.h"
int main()
{
myclass <int> aclass(10);
return 0;
}