c++ - keywords - para que sirven las palabras claves
Si utilizo el constructor explícito, ¿debo poner la palabra clave en ambos archivos.h y.cpp? (2)
No, no 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) {}
En realidad, mi pregunta está en el título.
De todas formas:
Tengo una clase y uso un constructor explícito:
.h
class MyClass
{
public:
explicit MyClass(const string& s): query(s) {}
private:
string query;
}
¿Es obligatorio o no poner palabra clave explícita en el archivo de implementación (.cpp)?
Con respecto a la pregunta de seguimiento (que debería haber enviado como una pregunta separada), la lista de inicialización va con la implementación del constructor (su cuerpo de función), que puede estar en el encabezado o en el archivo cpp.