gpt4 book ai didi

c++ - 单独的 cpp 文件中的模板化函数定义

转载 作者:行者123 更新时间:2023-11-28 00:56:39 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why should the implementation and the declaration of a template class be in the same header file?
Do template class member function implementations always have to go in the header file in C++?

我在这里犯了一些愚蠢的错误,但我看不出是什么。

这个编译:

//start of header.h
namespace ns
{
class A
{
public:
template <class t>t func();
};
template<class t> t A::func()
{
t a;
return a;
}
}
//end of header.h

//imp.cpp 开始

//imp.cpp结束

但以下不是:

//start of header.h
namespace ns
{
class A
{
public:
template <class t>t func();
};
}
//end of header.h




//start of imp.cpp
#include "header.h"
using namespace ns;

template<class t> t A::func()
{
t a;
return a;
}

//imp.cpp结束

错误是:错误 LNK2019:未解析的外部符号“public: int __thiscall ns::A::func(void)” (??$func@H@A@ns@@QAEHXZ) 在函数 _main 中引用

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com