c++模板类/模板函数的声明与定义应该放在头文件里
来源:互联网 发布:讨鬼传极卡顿优化补丁 编辑:程序博客网 时间:2024/04/28 00:57
c++模板类/模板函数的声明与定义应该放在头文件里,不要分开来写类中函数的声明与定义(比如在.H文件里声明某个成员函数,在.CPP文件里定义该成员函数),这样会导致连接错误。所应该将模板类/模板函数的定义与声明写在一个.h文件里。
比如
在类的头文件声明了一个函数 template<typename T> void fun(T a);
然后在另一个CPP 文件里 实现该函数
template<typename T> void fun(T a)
{
/*函数实现*/
}
如果把模板实现和定义分开,在模板类所在的编译单元里当然就不可能知道模板参数将是什么——int?char?甚至是用户自定义数据?——模板函数/类也就无从展开。很显然,相应的.o文件也就不可能包含所有这些实例代码。
只有把模板定义放到每一个引用它的地方,这样才可能完成展开——从这个意义上说,所谓模板定义其实应该算是模板声明,真正的定义是在你确认了模板类型参数之后(由编译器自动生成代码)。
不过,即便如此,为了避免和传统的.h .c使用习惯混淆,模板类所在的文件一般还是会用无扩展名或*.inc的格式命名。
0 0
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里,不要分开来写类中函数的声明与定义
- 函数模板和类模板成员函数的定义通常放在头文件中
- 模板函数,模板类的声明和定义都放在.h文件
- C++模板类成员函数最好和模板类声明一起放在同一个.h头文件里
- C++模板类的成员函数定义与声明必须在一个头文件中
- 从汇编角度看为什么模板函数声明和定义要放在头文件上
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- Qt错误总结1:
- Struts2+Spring3+Hibernate4整合之Spring配置文件
- 工作记录--LDAP
- 经典电影收藏-美国-X战警
- Linux字符设备与块设备的区别与比较
- c++模板类/模板函数的声明与定义应该放在头文件里
- java8的新特性学习笔记一
- 结构体字节对齐
- led按键循环查询驱动问题解决
- 停车场收费管理的未来发展趋势
- The Swift Programming Language(一)——A Swift Tour
- java中文乱码解决方法汇总
- 从用户的文档中创建条形码并自动的打印输出的条码控件 TBarCode
- GL 纹理 格式 资料备份