当前位置:首页 » 电脑资讯 » c类模板为什么放在一个文件

c类模板为什么放在一个文件

发布时间: 2023-04-05 14:31:12

❶ C++类模板的声明和定义为什么要放在同一个文件

也不是只能放在.h里面,但是推荐放在.h里面。STL模板实现全部是放在.h里面的。
------------------
编译能通过。
1)参与编译的只是.cpp文件,不会报错的原因,是因为它能在.h里面找到模板的声明。
链接错误。
1)链接的时候,需要实例化模板,这时候就需要找模板的具体实现了。假设在main函数中调用了一个模板函数,这时候就需要去实例化该类型的模板。注意main函数里面只包含了.h文件,也就是只有模板的声明,没有具体实备辩现。就会报错。
2)而模板的实现.cpp里面,虽然有模板的具体塌兆实现,但是没有谁在该.cpp里面使用一个模板函数,就不会生成一个具体化的实例。
ps:模板是在需要的时候,才会去生成一个具体化的实例的,比如,你只要一个int型的实例,模板就只会给你生成一个int型的实例,模板本身是不会被执行的(也就是模板本身不产生汇编指令),是模板生成的具体化实例才产生指令(这个实例是隐藏的,我们是看不到的)

解决方案:
1)将模板实现写在.h里面
2)如果你非要写在.cpp里面,那么请在模板实现的.cpp文件里面(或者.h里面)显式的实例化一个模板。如果是这样的话,那模团滚租板就没有太大的意义了,难道你去自己手动实例化所有的实例?

❷ C语言编写的程序只能放在一个程序文件里吗,如果不是,请说一下为什么,谢谢了

不一定,通常来说,如果程序的代码量比较少或者说是程序比较小,那么我们会写滚或在一个文件里。可磨轮如果是大程序的话,几十个瞎备信文件都有可能。

热点内容
拍立体的时候为什么要晃动手机 发布:2025-07-05 07:20:13 浏览:491
为什么电脑更新就有新软件 发布:2025-07-05 07:06:02 浏览:904
苹果手机为什么没有显示蓝牙 发布:2025-07-05 07:01:09 浏览:432
视频放在软件里面为什么那么卡 发布:2025-07-05 06:54:46 浏览:196
为什么现在女生喜欢穿小脚裤 发布:2025-07-05 06:52:43 浏览:167
为什么电脑热点连着打不开网页 发布:2025-07-05 06:51:19 浏览:432
为什么体检的参考区间不一样 发布:2025-07-05 06:47:48 浏览:582
为什么手机信号不好看也不能用 发布:2025-07-05 06:47:37 浏览:224
超声波检查为什么涂黏黏的东西 发布:2025-07-05 06:46:11 浏览:190
光叶海桐多为什么颜色 发布:2025-07-05 06:39:41 浏览:640