类中未定义/未初始化的默认值

2024-02-15

假设您有这样的课程:

class A
{
public:
  A () {}
  A (double val) : m_val(val) {}
  ~A () {}
private:
  double m_val;
};

创建 A 的实例后,如何检查 m_val 是否已初始化/定义? 换句话说,有没有办法知道 m_val 是否已初始化/定义?类似的东西defined我想,Python 中的运算符。 (但如果我错了,请纠正我。)

我想按以下方式修改类和 c-tors:

class A
{
public:
  A () : defined(false) {}
  A (double val) : m_val(val), defined(true) {}
  ~A () {}
private:
  double m_val;
  bool defined;
};

您如何评价这个解决方案?有什么建议吗?

TIA, 克里斯


您需要在默认构造函数中设置一个合理的默认值,否则其值是未定义的。这基本上意味着它将是一个随机值——可能是 0、NaN 或 2835.23098——除非您明确设置它,否则无法判断。

class A
{
public:
  A () : m_val(0.0) {}
  A (double val) : m_val(val) {}
  ~A () {}
private:
  double m_val;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类中未定义/未初始化的默认值 的相关文章

随机推荐