当我把模板放在另一个要实例化的类中时,模板链接错误
visual c++ Template linking error when I put template in another class to instantiate?
我不知道这是否有区别,但我使用的是vsc++ 6.0
链接……
vid3Dlg.obj : error LNK2001: unresolved external symbol "public: double __thiscall Image::jdlMin(double,double)" (?jdlMin@Image@@QAENNN@Z)
Debug/vid3.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
我也试过了:
template <class T> T Image::jdlMin( T a, T b )
得到相同的错误。
//Image.h
class Image
{
public:
Image();
virtual ~Image();
template <class T> T jdlMin( T a, T b );
}
//Image.cpp
Image::Image()
{
}
Image::~Image()
{
}
template <class T> T jdlMin( T a, T b )
//I tried this also: template <class T> T Image::jdlMin( T a, T b )
{
return ( a < b );// ? a : b;
}
//CVid3Dlg.cpp
void CVid3Dlg::exTemplate()
{
Image *im = new Image();
int s=0;
s = im->jdlMin((double)3,(double)4); //
}
这次,我编译了它(在vc++ 10下)来测试功能:
//Image.h
template<typename T>
class Image
{
public:
Image() {};
virtual ~Image() {};
T jdlMin( T a, T b );
};
//Image.cpp
#include "Image.h"
template <typename T>
T Image<T>::jdlMin( T a, T b )
{
return ( a < b );
};
int _tmain(int argc, _TCHAR* argv[])
{
Image<double> *im = new Image<double>();
double s = 0.0;
s = im->jdlMin( 3.0 , 4.0 );
return 0;
}
希望对你有帮助。
再见,我看了看一个很好的c++文档:"class T"answers"typename T"有完全相同的含义和行为完全相同的方式…div;)
没有文字的问题,不值得解释!
template <class T> T Image::jdlMin( T a, T b )
{
return ( a < b );// ? a : b;
}
您错过了函数定义前面的类。
template <class T> T jdlMin( T a, T b )
应该template <class T> T Image::jdlMin( T a, T b )
而且,定义必须在头文件中,现在我看到你的评论,它在cpp.
相关文章:
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- 使用cmake错误链接boost日志
- 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook 上
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- clang:错误:链接器命令失败,C++代码中的退出代码为 1(使用 -v 查看调用)
- 静态库中的 g++ 错误链接函数
- 未定义的参考错误链接天然函数Android
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- QT Q_PROPERTY错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- OSX MOJAVE -LD:架构X86_64 clang找不到符号:错误:链接器命令失败,出口代码1
- C 错误链接器命令失败了出口代码1(使用-V查看调用)
- LD:架构x86_64 clang找不到符号:错误:链接器命令失败,出口代码1(使用-v to See
- 聚输出错误 - 链接列表
- Xcode链接器错误:链接器命令失败,退出代码为1(使用-v查看调用)
- 尝试构建C DLIB示例无法与数百个未定义的参考错误链接