gpt4 book ai didi

c++ - .cpp 文件中模板类的非模板方法 - undefined reference ?

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:40 25 4
gpt4 key购买 nike

我知道模板函数必须在头文件中定义,但我忘记了。但是我相信非模板函数,即使它们属于模板类,也可以在 .cpp 文件中定义。允许吗?如果不是,为什么不呢?谢谢:)

最佳答案

实际上,必须在 header 中/在使用点定义的内容(除非在其他地方发生显式实例化)是“模板化实体”。到目前为止,在 C++ 中还没有这样的术语,但正在提出将其添加到语言中的提议,因为许多规则适用于“模板化实体”,而不仅仅是模板。

参见 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0391r0.html

原因应该很明显。就像模板一样,模板的成员可以使用模板参数,因此它们的源必须可用于实例化。

为类解决这个问题的技巧(如果成员函数不使用模板参数)是将函数放在非模板基类中并从类模板继承该类。

关于c++ - .cpp 文件中模板类的非模板方法 - undefined reference ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39074664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com