编程论坛
注册
登录
编程论坛
→
VC++/MFC
莫名其妙,求指教啊。
blowing00
发布于 2011-04-02 23:33, 359 次点击
我在一个用到模板的项目里面遇到这样一个问题:修改源文件并编译,然后运行,这时候总是显示项目已过期,重新生成,结果生成的是修改之前的版本,相当于没法修改。在模板里面有这个问题,模板外面就没有,为什么呀?
2 回复
#2
qq1023569223
2011-04-03 09:19
肯定有什么东西还要改,这个我不懂!
#3
blowing00
2011-04-06 13:30
自己捉摸了好久好久终于找到问题大概在哪了:
《C++ primer》上面有这么一段话:“当编译器看到模板定义的时候,它不立即产生代码。只有在看到用到模板时,如调用了函数模板或定义了类模板的对象的时候,编译器才产生特定类型的模板实例。”
问题就出在我原来这个项目是编译过的,VC保存那些编译后的文件,而且当同一个项目中的文件产生更改的时候,VC只重新编译那些更改过的文件。而我只更改了定义模板的文件,在引用这个模板的文件里没有更改,这是不是就导致了链接时出现问题?具体细节我也不太清楚,只知道大概就是这么回事,因为只要重新生成整个项目,或者在引用的文件里也动一下手脚让它重新编译,就没有这个问题了。
1