tutorial español c++ explicit

c++ - tutorial - solidity español



¿Palabra clave explícita en el constructor multi-arg? (1)

En C ++ 11, los constructores de múltiples parámetros se pueden convertir implícitamente con la inicialización de llaves.

Sin embargo, antes de C ++ 11 explicit solo se aplica a los constructores de un solo argumento. Para los constructores de argumentos múltiples, se ignoró y no tuvo ningún efecto .

Recientemente me encontré con una clase de aspecto extraño que tenía tres constructores:

class Class { public: explicit Class(int ); Class(AnotherClass ); explicit Class(YetAnotherClass, AnotherClass ); // ... }

Esto realmente no tiene sentido para mí, pensé que la palabra clave explícita es proteger la construcción elegida por el compilador de un tipo ajeno.

Está permitido? Si es así, ¿qué significa?