模版类的成员函数定义问题
来源:互联网 发布:python简明教程豆瓣 编辑:程序博客网 时间:2024/04/30 02:52
问题:定义类模板时,成员函数写在.cpp文件中,编译通过连接错误。如果将函数定义直接写在.h文件中则无任何错误。何故?
原因:模板是在使用的时候才就地生成代码的。就是说如果没有使用到该模板,模板的代码根本不会被编译。
当你类似TemplateName<int>这样使用一个模板的时候,编译器才将int这个类型引入TemplateName这个模板的代码从而生成所需要的class。
你将模板实现分开,那么编译器在引入int类型到模板代码的时候,就找不到实现部分的代码了。
解决方法:可以直接将成员函数的实现写在.h文件中;或者在调用类成员函数的文件中包含对应的.cpp文件。
当你类似TemplateName<int>这样使用一个模板的时候,编译器才将int这个类型引入TemplateName这个模板的代码从而生成所需要的class。
你将模板实现分开,那么编译器在引入int类型到模板代码的时候,就找不到实现部分的代码了。
解决方法:可以直接将成员函数的实现写在.h文件中;或者在调用类成员函数的文件中包含对应的.cpp文件。
0 0
- 模版类的成员函数定义问题
- hpp文件解决类成员函数重复定义的问题
- Time类的定义(成员函数)
- 4.1 类和成员函数的定义
- <C++>9.类成员函数的定义
- 类静态成员函数的定义
- C++类中成员函数的定义
- C++ 12.1 类的定义、声明、成员函数、数据成员
- 两个成员的类模版
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- 由类模版中static成员变量的定义引发的思考。。。
- 关于定义类成员导出函数需要注意的一些问题
- c++中模版友元函数的一点小问题...无法访问private成员
- 将例3.14改写为在类模版外定义各成员函数(第三章第十二题)
- CM 4.4 Launcher Fix the error and import adt
- Docker源码分析(一):Docker架构
- 网页常用模块名称
- 2000年NOIP全国联赛提高组 方格取数 题解
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- 模版类的成员函数定义问题
- 轻松学算法11:堆——神奇的优先队列
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- 白银 工业第一用处 光伏银浆
- 飘逸的python - 实现链式调用
- C语言编译原理简介
- C++内存泄漏检测
- Leetcode Best Time to Buy and Sell Stock
- 各种排序算法的稳定性和时间复杂度小结