在Visual C ++中声明模板类构造函数时发生错误2019

时间:2019-07-16 06:09:23

标签: c++ templates constructor

我的方法构造函数接受模板参数值,并且我知道可以通过在每个方法前面加上

来在实现文件(.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;
}

0 个答案:

没有答案