C++模板定义与实现分离所导致的链接错误LNK2019
来源:互联网 发布:知的草书写法 编辑:程序博客网 时间:2024/05/01 10:31
最近带本科生的数据结构实验课,用C++实现,习惯将模板类的定义与实现分开,分别写在头文件“SeqList.h”和cpp文件“SeqList.cpp”中。然而编译后运行总是出现链接错误,经查资料发现,目前大多数的编译器不支持将模板的定义与实现分开。
有两种方法来解决这个问题。一是将定义与实现都写进头文件里,另一个是在需要使用该模板类的地方添加实现该类的.cpp文件,如“#include "SeqList.cpp"”。简单示例如下所示:
//--------------------------使用VS2012beta--------------------------
//---------------------------Test.h----------------------------
#pragma once
#include "stdafx.h"
using namespace std;
template <class Type>
class Test
{
public:
Test(void);
Test(int x);
~Test(void);
Print();
};
//--------------------------Test.cpp-------------------------------
#include "stdafx.h"
using namespace std;
using namespace std;
{
warning C4930: 'Test t(void)': prototyped function not called (was a variable definition intended?)类似的警告,并且t不被编译器认为是Test类实例化后的对象,无法使用。
- C++模板定义与实现分离所导致的链接错误LNK2019
- C++模板定义和实现分离导致的编译错误
- 类模板成员函数的定义、实现分离与error LNK2019的解决办法
- 转:C++模板定义和实现分离导致的编译错误
- 一个dllimport 导致的链接错误LNK2019
- C++ 函数模板特化导致的多重定义链接错误
- C++模板类链接错误:LNK2001, LNK2019
- [C++]模板类的声明与实现分离问题
- VS 2013 C++ 类模板定义与实现 进行分离
- C++类模板定义与实现的分离—学习C++数据抽象和问题求解
- 一个链接error LNK2019错误的解决方法
- 使用ffmpeg的库 链接错误, LNK2019
- 链接器工具错误 LNK2019 C++primer5第十五章程序错误的解决
- 模板类定义时,模板方法定义与声明的分离
- 链接错误LNK2005 在MFC库之前链接C运行时库导致的链接错误
- c++模板定义和实现分离
- 散列表的C语言实现-分离链接法
- c++-模板不支持分离编译错误分析
- C/C++网络编程中的TCP保活
- 关于研究思考的一些感悟
- ManageStartUpApps:C#操作注册表来读取和修改开机启动项
- 调用startActivityForResult后,onActivityResult无响应
- 实例化一个类的对象时的执行顺序
- C++模板定义与实现分离所导致的链接错误LNK2019
- 剑指OFFER
- ios模拟器中应用程序的安装位置
- linux shell脚本文件执行分析
- MAX3421E版本1和2主机OUT传输
- Autotools上手指南Autotools上手指南1——autoconf基本思想
- SIMD和多核心编程时的一些总结。
- js,java变量使用
- oracle 10g新建索引ORA-25150 不允许对区参数执行