gpt4 book ai didi

c++ - 在哪里定义模板类的静态常量成员变量

转载 作者:太空狗 更新时间:2023-10-29 20:06:44 28 4
gpt4 key购买 nike

根据这个question's answer :

根据标准,您必须定义 i (这是一个静态 const 成员) 在类定义之外

...但是如果我对本身是通用的模板类的静态常量成员变量执行此操作,则会出现链接错误(如果模板代码位于单独的编译单元中,则类似于出现链接错误)。如果我在标题中定义它们,链接错误就会消失(我问是否可以在 this question 中首先以 generic 方式定义它们)。

我正在做的事情安全吗?下面是 header 中静态常量成员变量的定义之一。

  template<typename T, unsigned int T_Size> 
const Vector<T, T_Size> Vector<T, T_Size>::Zero = Vector<T, T_Size>(0);

最佳答案

类模板的静态数据成员必须在头文件中定义。仅当您定义显式专用 模板的静态成员时,您才必须在实现文件中定义它们。

换句话说,规则与类模板的成员函数相同。

关于c++ - 在哪里定义模板类的静态常量成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433935/

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