【发布时间】:2009-10-07 21:58:01
【问题描述】:
我想知道是否使用模板,在其他线程中我发现由于某些原因必须在头文件中实现模板。 没关系,我的问题是如果其他程序使用它,是否需要源? 从其他线程答案的逻辑来看,似乎即使是其他程序也需要完整的实现,因此编译器可以判断一行是否可以使用模板化函数。
如果是,我想模板对于希望其他人使用他的库的开发人员来说不是一件好事? 如果没有,那么我们很好,将使用模板。
或者至少有什么办法可以节省我的辛苦、花费的时间和其他人的代码?
(我将使用 stl 向量等,但我要求我自己的代码......模板似乎很好,为您节省了很多硬编码的行或宏滥用,但如果其他人可以阅读您的源代码而不是它使几乎没有意义[打开项目很有意义xD])
谢谢, 乔
【问题讨论】:
-
您可能想提供更多详细信息。 Boost 和 STL 在模板化方面没有问题。模板是一件好事,因为代码可用并且您可以从中学习(更改其他人的库可能不是一个好主意)。除非你有什么要隐藏的。您稍后还提到了一些关于基类的事情,这听起来很奇怪。模板不关心类型是否相关。可能是正常的运行时多态性合适吗?
-
我需要一个对象工厂,所以模板很适合……但所有其他东西都与多态性有关。我曾经是 C(CircleMUD 有人吗?)程序员并因为我以前工作的公司而跳到 C#,现在我进入 C++ 并且一开始有点困惑,因为我习惯于每天看到的所有 C#...
-
我认为某些层次结构需要对象工厂(不是模板通常使用的任何东西)。一方面,我认为工厂也可以是多态的。但也应该可以实例化所需的模板并将实现与声明分开。
标签: c++ templates header implementation