当强调CPP明确说明一个弹性时,我会出现错误

When emphasizing for cpp that a func is explicit I get an error

本文关键字:错误 一个 CPP 说明      更新时间:2023-10-16

嗨,我写了一个从myclass到int的铸造功能,反之亦然,因此我将其中一个功能作为显式。这样做时,我有一个错误。

功能:

    CircularInt(int n): CircularInt(1, 12 , n) { }
    explicit operator int() const{ return current;};

错误:

CircularInt hour {1, 10 , 7 };   // current = 7
int i = hour;

错误:

错误:在初始化中无法将"圆形"转换为" int" int i =小时;

删除"明确"时,一切都很好,为什么这是?

P.S。

我是否可以提到我找不到完全这样的问题,我发现许多人忘了做明确的人,问什么是明确的(在这些确切的问题中找不到某些问题(等。

这可能是由于不完全理解明确的理解...

删除"明确"时,一切都很好,为什么这是?

因为这是explicit应该要做的:如果书面明确,即int i = static_cast<int>(hour);

,允许转换
相关文章: