如何在类的头文件中定义 const double?

发布于 2024-12-20 11:01:35 字数 134 浏览 2 评论 0原文

在我的类的头文件中,我正在尝试以下操作并收到编译器投诉:

private:
    static const double some_double= 1.0;

您应该如何实际执行此操作?

Inside the header file of my class, I am trying the following and getting compiler complaints:

private:
    static const double some_double= 1.0;

How are you supposed to actually do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

剩余の解释 2024-12-27 11:01:35

在 C++11 中,借助 constexpr,您可以拥有非整数常量表达式:

private:
    static constexpr double some_double = 1.0;

In C++11, you can have non-integral constant expressions thanks to constexpr:

private:
    static constexpr double some_double = 1.0;
冷默言语 2024-12-27 11:01:35

在标头中声明它,并在一个编译单元中初始化它(该类的 .cpp 是合理的)。

//my_class.hpp
private:
static const double some_double;

//my_class.cpp
const double my_class::some_double = 1.0;

Declare it in the header, and initialize it in one compilation unit (the .cpp for the class is sensible).

//my_class.hpp
private:
static const double some_double;

//my_class.cpp
const double my_class::some_double = 1.0;
旧情别恋 2024-12-27 11:01:35

我通过这样做解决了这个问题:

//my_class.hpp
const double my_double() const {return 0.12345;}

//in use
double some_double = my_class::my_double();

我的想法来自

math::pi()

I've worked around this issue by doing this:

//my_class.hpp
const double my_double() const {return 0.12345;}

//in use
double some_double = my_class::my_double();

I got the idea from

math::pi()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文