首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
C++ 中模板的实现一定要写在头文件中吗?
[问答题]
C++ 中模板的实现一定要写在头文件中吗?
添加笔记
求解答(0)
邀请回答
收藏(19)
分享
纠错
7个回答
添加回答
0
奋斗的呆头鹅
1.通常情况下,定义和实现都会被放在头文件中。这是因为模板是在编译期实例化,需要在同一个文件中看到全部的定义,已生成正确的函数版本。 2.显示实例化:如果只需要模板对有限的几种类型进行实例化,可以把模板的实现放在.cpp文件中,并在其中显示实例化所需类型。 3.通过.tpp或者.ipp文件分离实现:在放有模板声明的头文件的末尾或者合适位置 #include "Foo.tpp" ,保证预处理阶段把模板的实现包含进头文件。
发表于 2026-03-30 19:31:40
回复(0)
0
牛客78237161号
模板定义和实现通常要放在头文件中以保证编译器在实例化时可见,但也可以通过显式实例化或将实现放在单独.tpp/.ipp文件并包含在头文件中,以实现一定程度的分离
发表于 2025-12-04 21:02:56
回复(0)
0
无语的共享单车人在提需求
一般放在头文件中,模版的实例化发生在编译期,若隐藏在编译单元内,编译时看不到具体代码,无法实例化; 也可以通过两种方法:1.显式实例化 2.将模版放在.tpp/.ipp中
发表于 2025-11-27 23:06:39
回复(0)
0
offer快快到怀里来
一般要在头文件中,保证编译器实例化可见,也可以通过显式实例化或将实现放在单独.cpp
发表于 2025-09-29 16:48:56
回复(0)
0
牛客769722986号
模板的实现一般要在头文件中。因为模板是编译是多态,如果放在cpp文件中找不到链接会报错
发表于 2025-09-20 22:05:59
回复(0)
0
今天阳光好灿烂
**模板的实现通常要放在头文件中**以保证编译器实例化时可见,但也可以通过: ①方法2:显示实例化 ②方法3:将实现单独放在.tpp文件并在头文件中包含,从而实现一定程度的分离
发表于 2025-09-05 19:40:26
回复(0)
0
月色真美月光护佑
模板定义和实现通常要放在头文件中以保证编译器在实例化时可见,但也可以通过显式实例化或将实现放在单独.tpp/.ipp文件并在头文件中包含以实现一定程度的分离。模板在编译期实例化时必须能看到完整的定义和实现。如果将模板实现仅放在.cpp文件中,编译器在处理使用模板的代码时找不到相应实现,导致链接错误或无法实例化。因此最常见的做法是将模板类或模板函数的声明和实现都写在头文件里,以便在任何包含该头文件的翻译单元中都能进行实例化。
发表于 2025-08-29 15:31:19
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
难度:
7条回答
19收藏
294浏览
热门推荐
相关试题
在大语言模型中,什么是"Gated...
大模型开发
评论
(1)
下图是一个信号传输线的串扰模型,下...
通信原理
评论
(1)
来自
2025年秋招-中国移动...
混合专家(MoE)模型训练中,部分...
大模型开发
评论
(1)
当观察到大型Transformer...
大模型概念
评论
(1)
在大型语言模型的文本生成任务中,集...
大模型概念
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题