我在声明类的实例时遇到问题。 代码:
//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退出状态