gpt4 book ai didi

c++ - 非模板类与模板类的多重定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:55 25 4
gpt4 key购买 nike

为什么编译器会提示在多个 .cpp 文件中定义了一个非模板类,但对于一个模板类却没有问题,该模板类的定义在各种 .cpp 文件中是重复的(通过包含该类的 .inl 文件),即使在多个 .cpp 文件中显式实例化了该类?

最佳答案

非模板情况是因为在那种情况下您的程序违反了一个定义规则,因此链接器(而不是编译器)将提示多个定义。

另一方面,对于模板,语言指定它必须工作并且链接器会整理出要做什么。不过,我不是 100% 确定是否应将显式模板实例化视为与非模板函数相同。

关于c++ - 非模板类与模板类的多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416747/

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