C++ 模版类的文件组织
来源:互联网 发布:淘宝拍卖靠谱吗 编辑:程序博客网 时间:2024/05/21 09:47
系统环境:Mac OSX lion
编译器:Xcode4.1.1自带GCC
情况一:
将某个模版的代码放到同一个头文件中
情况二:
接口和实现分别放在头文件和cpp文件中
第一种情况没啥问题,对于第二种情况,若按一般类的包含方法(实现文件*.cpp中包含头文件*.h),编译时会出现类似错误
Undefined symbols for architecture x86_64: "_main", referenced from: start in crt1.10.6.old: symbol(s) not found for architecture x86_64collect2: ld returned 1 exit status
解决办法是反过来:头文件末尾包含实现文件,实现文件中不用再包含该头文件(要不会出现重复定义)
其实仔细想想,编译的时候编译器会将#include部分直接用文件替换掉也就和第一种情况完全等价了
猜想
再深入思考一下,通常cpp文件最终是产生实际程序代码(还是运行时内存占用?),对于模版而言,纯粹是一种编译时规则;那么直接对模版cpp进行编译时,链接器是无法识别的~
- C++ 模版类的文件组织
- 基于C语言的代码文件组织
- 多文件组织的三子棋(C语言版)
- C语言中多个文件组织(include)的原理
- 【C++】模版矩阵类
- C++——模版:类模版
- g++/make: C++程序文件组织模版
- C语言头文件组织
- C语言头文件组织
- C语言头文件组织
- C语言代码文件组织
- 三角形类3--程序的多文件组织
- 程序的多文件组织-三角形类
- 多文件组织关于游戏的类
- C语言不支持函数模版和类模板的使用
- 第二周项目二C/C++程序的多文件组织
- 模版及模版类的继承
- 类模版的特化
- K3 取消批次管理的SQL脚本
- Ajax post 传递中文时乱码问题解决方法
- 某"面霸"疯狂应聘IT名企的经历
- 关注“飞翔的键盘” 近期PlayBook/QNX开发学习笔记!!!
- 第一讲:Android开发环境的搭建
- C++ 模版类的文件组织
- 密码重置
- 2011-10-15 14:54:31
- C#中避免SQL中的注入式攻击(winform)
- 北亭
- 从QProcess说开来(一)
- 任何时候都适用的20个C++技巧
- Quartus II 11.0 sp1破解
- epass收集