sirve significa que por parametros para linea ejemplo comandos arg c++ explicit

c++ - significa - parametros por linea de comandos c



c++ palabra clave explícita para función sin argumentos (1)

Posible duplicado:
¿Qué significa la palabra clave explícita en C ++?

¿Hay alguna razón para usar la palabra clave explicit para una función que no acepta ningún argumento? ¿Tiene algún efecto? Me pregunto porque acabo de cruzar la línea

explicit char_separator()

cerca del final de la página documentando boost :: char_separator ( http://www.boost.org/doc/libs/1_47_0/libs/tokenizer/char_separator.htm ), pero no se explica más allí.


Explicación de lectura de los miembros :

explicit char_separator(const Char* dropped_delims, const Char* kept_delims = "", empty_token_policy empty_tokens = drop_empty_tokens) explicit char_separator()

La palabra clave explicit para el primer constructor requiere la creación explícita de objetos de tipo char_separator. ¿Qué significa la palabra clave explícita en C ++? cubre la palabra clave explícita muy bien.

La palabra clave explicit para el segundo constructor es un ruido y se ignora.

EDITAR

Desde el estándar de C ++:

7.1.2 p6 dice:

El especificador explícito se usará solo en declaraciones de constructores dentro de una declaración de clase; ver 12.3.1.

12.3.1 p2 dice:

Un constructor explícito construye los objetos como constructores no explícitos, pero lo hace solo cuando se usa explícitamente la sintaxis de inicialización directa (8.5) o donde las conversiones (5.2.9, 5.4) se usan explícitamente. Un constructor predeterminado puede ser un constructor explícito; dicho constructor se utilizará para realizar la inicialización predeterminada o la inicialización del valor (8.5). [Ejemplo:

class Z { public: explicit Z(); explicit Z(int); // ... }; Z a; // OK: default-initialization performed Z a1 = 1; // error: no implicit conversion Z a3 = Z(1); // OK: direct initialization syntax used Z a2(1); // OK: direct initialization syntax used Z* p = new Z(1); // OK: direct initialization syntax used Z a4 = (Z)1; // OK: explicit cast used Z a5 = static_cast<Z>(1); // OK: explicit cast used

—En ejemplo]

Por lo tanto, el constructor predeterminado con la palabra clave explicit es el mismo que sin esta palabra clave.