gpt4 book ai didi

c++ - 如何使用静态成员作为模板参数?

转载 作者:行者123 更新时间:2023-11-30 01:31:01 25 4
gpt4 key购买 nike

我有以下代码结构:

我的类.h

class myClass
{
public:
void DoSomething(void);
};

我的类.cpp

#include myClass.h

static const unsigned length = 5;
static myArray<float, length> arrayX;

void myClass::DoSomething(void)
{
// does something using length and array X
}

现在我想将在文件范围内定义的静态变量转换为类的静态成员。我执行以下操作;

我的类.h

class myClass
{
static const unsigned length;
static myArray<float,length> arrayX;

public:
void DoSomething(void);
};

我的类.cpp

#include myClass.h

const unsigned myClass::length = 5;
myArray<float, length> myClass::arrayX;

void myClass::DoSomething(void)
{
// does something using length and array X
}

但是,我得到一个错误:

C2975: 'Length' : invalid template argument for 'myArray', expected compile-time constant expression myClass.h

我知道我收到这个错误是因为长度还没有在头文件中初始化。我该如何解决这个问题?

最佳答案

它需要是一个常量表达式,因此您最好将 = 5 移动到 header 。

关于c++ - 如何使用静态成员作为模板参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3743166/

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