2008-11-07 12 views

Respuesta

21

No, no lo es. La palabra clave explicit solo está permitida en el encabezado. Mi gcc dice:

test.cpp:6: error: only declarations of constructors can be 'explicit' 

para el siguiente código:

class foo { 
public: 
    explicit foo(int); 
}; 

explicit foo::foo(int) {} 
+0

Entendí lo que quería decir ... Simplemente leí la línea intermedia. – user2962533

+0

Mi MS VC++ (2012) dice: 'test.cpp (6): error C2071: foo :: {ctor}: clase de almacenamiento ilegal' –

0

Re la pregunta de seguimiento (que realmente debería haber presentado como una cuestión aparte), la lista de inicialización va con la implementación del constructor (su cuerpo de la función), que podría estar en el encabezado o en el archivo cpp.

Cuestiones relacionadas