【发布时间】:2016-12-28 17:13:14
【问题描述】:
我知道模板函数必须在头文件中定义,出于某种原因我忘记了。但是我相信非模板函数,即使它们属于模板类,也可以在 .cpp 文件中定义。那是允许的吗?如果不是,为什么不呢?谢谢你:)
【问题讨论】:
-
嗯,模板类的所有内容都是模板,即使它没有显示在方法签名或方法的代码中;考虑到即使类布局通常也依赖于模板参数(因此模板参数不出现的方法的生成代码可能在不同的模板实例之间有所不同),定义何时允许“挑选”单个方法只需添加更混乱的标准规则。在我看来,将所有模板不变的东西移动到基类的简单解决方案似乎是一个更好的选择。
标签: c++ function class templates