gpt4 book ai didi

c++ - 如何初始化类内浮点常量?

转载 作者:太空狗 更新时间:2023-10-29 23:31:07 24 4
gpt4 key购买 nike

我最近遇到了 Visual C++ 2005 无法在类常量中初始化,遇到了普遍存在的错误

“错误 C2864:...:只能在类中初始化静态常量整型数据成员”

来自类似于

的代码
class MyClass:
{
private:
static const double myConstant = 2.9768;
}

我已经能够弄清楚非整数类型是问题所在,并且有几种方法可以拥有整数常量,但我还没有找到一个令人满意的解决方法来定义类范围内的常量。这种类型的声明在后来的/其他编译器中是否合法?

最佳答案

在 C++03 中,您必须在类定义之外初始化非整型静态常量:

struct Foo
{
static const double value;
};
const double Foo::value = 0.5;

在 C++11 中,您可以从内联常量表达式初始化任意constexpr session :

struct Foo
{
static constexpr double value = 0.5;
};

您可能需要也可能不需要为变量提供定义,这取决于您是否在代码的其他地方需要它(例如通过获取它的地址)。

关于c++ - 如何初始化类内浮点常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121015/

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