When using a constructor in C++, if there is one argument, the class is marked as a conversion constructor. This means the compiler can implicitly convert objects from the type accepted by the constructor into another one. Explicit stops this automatic operation from happening and instead forces the constructor to only be used explicitly.

Use of explicit keyword in C++ - GeeksforGeeks