如何声明需要枚举作为模板参数的类的实例

我在声明类的实例时遇到问题。 代码:

//main.cpp
#include "klass.hpp"

int main(int argc,char** argv)
{    
   Klass<Type::Big>* klass = new Klass<Type::Big>();
}

//klass.hpp
#pragma once

enum class Type
{
Big,Medium,Small,};

template<Type T>
class Klass
{
private:
public:
Klass(/* args */);
~Klass();
};

//klass.cpp
#include "klass.hpp"

#include <iostream>

template<Type T>
Klass<T>::Klass(/* args */)
{
   std::cout << "Hello from Klass class";
}

template<Type T>
Klass<T>::~Klass()
{ 

}

我正在尝试使用:

g++ -std=c++17 -o test.exe .\main.cpp .\klass.cpp

我得到了错误:

  

对`Klass :: Klass()'的未定义引用   collect2.exe:错误:ld返回1退出状态

xvjingkuaile 回答:如何声明需要枚举作为模板参数的类的实例

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162300.html

大家都在问