为什么模板类的定义和实现代码必须写在一个头文件里??? 为什么模板类的定义和实现代码必须写在一个头文件里,而不能像一般的类那样放在h和cpp两个文件里,否则link时报错.为什么???谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但是我的宏可以写在CPP里面啊 同意“In355Hz(好象一条狗)”的意见在ANSI C 的标准文献中,将你所指的“CPP 中的类代码”称为statement;将你所指的“H 中的类代码”称为definition,两者的定义是完全不同的主要指:statement将被C 编译器直接转换为二进制代码,而definition 只被C 编译器用于一些文本处理工作中(类似于宏)一个definition,它的出现必须是完整的。模板却只有definition 而没有statement,你就不能把“模板语句”分离出来一个模板只是单个的definition,你可以把宏放到CPP文件中,所以你也可以把模板的定义整个地放在CPP文件中 我觉得ANSI C 的标准文献对我最深刻的印象是“顺序点(sequence points)”。我认为在强调功能性的代码中,应该强调顺序点的概念顺序点直接违背OOP的软件工程的思路,但我是觉得所有的功能性代码,可以作为基本函数库,这样顺序点对软件结构的危害就可以降到最低如果函数被划分为功能性代码,都应该被static 修饰,因为当所有相关变量都通过参数传递,所有的状态都出现在栈上的时候,功能性代码将是最容易调测试的! 回复人: GoldenSword(金错刀) ( ) 信誉:110 2003-04-07 19:26:00 得分:0 但是我的宏可以写在CPP里面啊----------------------------------假设a.cpp: #include "a.h",宏写在a.h里边和a.cpp里边,a.cpp都可以正确编译;假如宏写在a.cpp中,其他include "a.h" 的cpp就不能用。所谓include,可以想象成把.h和.c/.cpp拼接起来编译。 求VC++操作XML文件的Demo odbc/mfc 向mysql 写入二进制数据的问题 救命啊~超级冷门的问题 托盘程序的冒泡通知怎么实现? 请明人指路,我该学VC还是VB 两个问题 关于显示图片 600分求游戏服务器vc6.0源码 自己做的的程序,怎样可以和IE一起绑定 帮帮我,如何实现在视中实现控件的拖放 怎样注册控件? 菜单的问题
主要指:statement将被C 编译器直接转换为二进制代码,而definition 只被C 编译器用于一些文本处理工作中(类似于宏)
一个definition,它的出现必须是完整的。模板却只有definition 而没有statement,你就不能把“模板语句”分离出来
一个模板只是单个的definition,你可以把宏放到CPP文件中,所以你也可以把模板的定义整个地放在CPP文件中
如果函数被划分为功能性代码,都应该被static 修饰,因为当所有相关变量都通过参数传递,所有的状态都出现在栈上的时候,功能性代码将是最容易调测试的!
但是我的宏可以写在CPP里面啊
----------------------------------假设a.cpp: #include "a.h",宏写在a.h里边和a.cpp里边,a.cpp都可以正确编译;假如宏写在a.cpp中,其他include "a.h" 的cpp就不能用。
所谓include,可以想象成把.h和.c/.cpp拼接起来编译。