C++类模板怎么写在单独的头文件和源文件中
今天打算研究研究之前我们领导写的一段关于类模板的代码,后来发现有点坑需要记录一下。以往关于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++类模板怎么写在单独的头文件和源文件中相关推荐
- C++中的头文件和源文件:如何写头文件
C++中的头文件和源文件 转自:博客园http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.html 一.C++编译模式 通常,在一个C++ ...
- 类模板里面的函数写在类模板里面和写在类模板的外面,且在1个.cpp文件中
和类一样,类模板里面声明的函数,其函数体写在类里面和外面都行,但是有一点需要注意:1.用友元函数重载<< 或 >>运算符,函数声明写在类模板里面,函数实现写在类模板外面,要在函 ...
- c语言头文件和源文件为什么分开,C语言中为什么要头文件和源文件分开写
对c&c++程序来说,基本上来说都是要把源文件和头文件分别编写.一般都是代表一个基本功能的源文件引用相应的头文件. 一个 相关功能的模块可能有若干对源文件和头文件组成.这是基于组件编程的核心. ...
- c++ 类的头文件和源文件拆分
这里说一下我一开始犯的错误 在这一步是我头文件创建的是cpp,导致后面一直报错,我还不知道错在哪,简直哭唧唧!!! 以点跟圆的关系为例 创建了一个圆类和点类(请不要学我不会英语打拼音,我是英语渣渣呜呜 ...
- C/C++怎样编写高质量的程序:头文件和源文件模板------高质量C++/C编程指南-第1章-文件结构
http://www.bianceng.cn/Programming/cplus/200705/614.htm 高质量C++/C编程指南-第1章-文件结构 第1章 文件结构 每个C++/C程序通常分为 ...
- 如何写规范头文件,及头文件和源文件之间函数调用等关系
举一个简单且经典例子先: main.c input.c calcu.c input.h calcu.h 通过这三个源文件两个相应头文件来演示他们之间的关系 1. main.c 2.input.c 3. ...
- C++提高部分_C++类模板与继承---C++语言工作笔记091
然后我们再来看,c++中的类模板,与继承,可以看到 当子类继承的父类是一个类模板的时候,子类在声明的时候,要指定父类中的类型 如果不指定父类中的T的类型的话,编译器就无法给子类,分配内存,这个很好理解 ...
- 全面总结C++类模板使用的基础知识
✨引言 书接上文,今天来学习C++模板知识中的第二大模块,也就是类模板的使用. <C++提高编程>专栏主要针对C++泛型编程和STL技术做详细讲解,深入研究C++的使用,对C/C++感兴趣 ...
- C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)
C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...
最新文章
- linux如何卸载挂载文件
- 在使用Reference Source调试.Net 源代码时如何取消optimizations(代码优化)-翻译
- java if and_Java运算符-if分支语句
- MVC的Model Binder总结
- android textview改变部分文字的颜色和string.xml中文字的替换及部分内容设置颜色、字体、超链接、图片...
- 视频编解码的理论和实践2:Ffmpeg视频编解码
- Android中Parcelable接口用法
- layui如何获取父节点的父节点_layui框架中layer父子页面交互的方法分析
- HDU - 4394 Digital Square(数位dfs)
- java面试题二十九 多线程数据共享问题
- java剑姬_ListView和Adapter(文字列表)
- SalesArea F4 help
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
- Python3.x中Django-xadmin的添加
- bat中的start
- e值的MonteCalo法估计
- win7下 安装mysql数据库_mysql-windows系统安装mysql数据库
- 《51单片机应用开发从入门到精通》——2.10 变频报警实例
- 两款苹果cms仿电影先生的
- 超通俗易懂科普:什么是光通信?