今天打算研究研究之前我们领导写的一段关于类模板的代码,后来发现有点坑需要记录一下。以往关于C++模板基本上都是写一个demo,然后运行通过,没有软件工程的样子,所以今天我按以往的惯例写了一个类模板,打算头文件和源文件分离然后在另外一个源文件中调用模板类。

还用之前使用的testdemo

在dll工程中添加了一个类testTemplate用来写类模板的。

类模板头文件:

#ifndef __TESTTEMPLATE_H__
#define __TESTTEMPLATE_H__template <typename T>
class testTemplate
{
public:testTemplate();~testTemplate();void ttempPrint();
private:T m_data;
};#endif // !__TESTTEMPLATE_H__

类模板源文件:

#include "stdafx.h"
#include "testTemplate.h"
#include <iostream>using namespace std;template <typename T>
testTemplate<T>::testTemplate()
{m_data = T();cout << typeid(m_data).name() << endl;
}template <typename T>
testTemplate<T>::~testTemplate()
{
}
template <typename T>
void testTemplate<T>::ttempPrint()
{cout << "template func" << endl;
}

其他函数调用类模板:

正常类函数这么调用时没什么问题的,但是类模板不同。

大体原因就是类模板在编译的时候时不会编译的,因为编译器也不知道你的模板的具体内容,所以就会报错;提醒你链接的有问题。

 怎么解决这个办法了,我看其他人的博客有解决其实就是一行代码的事;

加上这行代码就可以了。

具体的可以参考

有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析_fengyhack的博客-CSDN博客_template 无法解析的外部符号

C++类模板怎么写在单独的头文件和源文件中相关推荐

  1. C++中的头文件和源文件:如何写头文件

    C++中的头文件和源文件 转自:博客园http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.html 一.C++编译模式 通常,在一个C++ ...

  2. 类模板里面的函数写在类模板里面和写在类模板的外面,且在1个.cpp文件中

    和类一样,类模板里面声明的函数,其函数体写在类里面和外面都行,但是有一点需要注意:1.用友元函数重载<< 或 >>运算符,函数声明写在类模板里面,函数实现写在类模板外面,要在函 ...

  3. c语言头文件和源文件为什么分开,C语言中为什么要头文件和源文件分开写

    对c&c++程序来说,基本上来说都是要把源文件和头文件分别编写.一般都是代表一个基本功能的源文件引用相应的头文件. 一个 相关功能的模块可能有若干对源文件和头文件组成.这是基于组件编程的核心. ...

  4. c++ 类的头文件和源文件拆分

    这里说一下我一开始犯的错误 在这一步是我头文件创建的是cpp,导致后面一直报错,我还不知道错在哪,简直哭唧唧!!! 以点跟圆的关系为例 创建了一个圆类和点类(请不要学我不会英语打拼音,我是英语渣渣呜呜 ...

  5. C/C++怎样编写高质量的程序:头文件和源文件模板------高质量C++/C编程指南-第1章-文件结构

    http://www.bianceng.cn/Programming/cplus/200705/614.htm 高质量C++/C编程指南-第1章-文件结构 第1章 文件结构 每个C++/C程序通常分为 ...

  6. 如何写规范头文件,及头文件和源文件之间函数调用等关系

    举一个简单且经典例子先: main.c input.c calcu.c input.h calcu.h 通过这三个源文件两个相应头文件来演示他们之间的关系 1. main.c 2.input.c 3. ...

  7. C++提高部分_C++类模板与继承---C++语言工作笔记091

    然后我们再来看,c++中的类模板,与继承,可以看到 当子类继承的父类是一个类模板的时候,子类在声明的时候,要指定父类中的类型 如果不指定父类中的T的类型的话,编译器就无法给子类,分配内存,这个很好理解 ...

  8. 全面总结C++类模板使用的基础知识

    ✨引言 书接上文,今天来学习C++模板知识中的第二大模块,也就是类模板的使用. <C++提高编程>专栏主要针对C++泛型编程和STL技术做详细讲解,深入研究C++的使用,对C/C++感兴趣 ...

  9. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

最新文章

  1. linux如何卸载挂载文件
  2. 在使用Reference Source调试.Net 源代码时如何取消optimizations(代码优化)-翻译
  3. java if and_Java运算符-if分支语句
  4. MVC的Model Binder总结
  5. android textview改变部分文字的颜色和string.xml中文字的替换及部分内容设置颜色、字体、超链接、图片...
  6. 视频编解码的理论和实践2:Ffmpeg视频编解码
  7. Android中Parcelable接口用法
  8. layui如何获取父节点的父节点_layui框架中layer父子页面交互的方法分析
  9. HDU - 4394 Digital Square(数位dfs)
  10. java面试题二十九 多线程数据共享问题
  11. java剑姬_ListView和Adapter(文字列表)
  12. SalesArea F4 help
  13. nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
  14. Python3.x中Django-xadmin的添加
  15. bat中的start
  16. e值的MonteCalo法估计
  17. win7下 安装mysql数据库_mysql-windows系统安装mysql数据库
  18. 《51单片机应用开发从入门到精通》——2.10 变频报警实例
  19. 两款苹果cms仿电影先生的
  20. 超通俗易懂科普:什么是光通信?

热门文章

  1. 大计基笔记(1)数学运算
  2. Java TCP发送与接收
  3. 使用JOL工具直接查看出java对象大小
  4. 幼师计算机word,幼儿园大班老师教养笔记范文
  5. 浏览器主页被2345劫持简单处理方法
  6. bzoj 3238 差异
  7. android的一些简单配置修改(2)
  8. 数据库系统原理--第2章作业2--习题答案
  9. warning:4005 DXGI_STATUS_OCCLUDED,宏重定义
  10. 最大后验概率估计算法(简单,通俗易懂)