当为 cpp 强调 func 是显式时,我得到一个错误

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

您好,我写了一个从 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;

错误:

error: cannot convert ‘CircularInt’ to ‘int’ in initialization int i = hour;

擦除"explicit"时一切正常,这是为什么?

p.s.

我可以提一下,我找不到完全像这样的问题,我发现很多人的问题都忘了做明确的,问什么是明确的(在那些确切的问题中没有找到他们给我的东西)等等

可能这是因为没有完全理解明确的...

When erasing the "explicit" all is good, Why is this?

因为这是 explicit 应该做的:允许转换书面 显式 ,即 int i = static_cast<int>(hour);.