struct Constants{
static const char * DB_FILE_NAME;
static const char * DB_FULL_PATH;
static const char * DB_FULL_PATH_NAME;
~Constants();
};
//Aqui esta lo nuevo:
const char * Constants::DB_FILE_NAME = "data.db";
const char * Constants::DB_FULL_PATH = "./";
const char * Constants::DB_FULL_PATH_NAME = "./data.db";
Constants::~Constants(){
delete DB_FILE_NAME;
delete DB_FULL_PATH;
delete DB_FULL_PATH_NAME;
}
Ya vi, mi error era que estaba inicializando mal, cuando los miembros son static, debo hacerlo de la forma en las lineas 13, 14 y 15. Parece ser que la definición de los miembros estáticos es levemente diferente a la de un miembro común y corriente, porque he necesitado colocar las palabras "const char *" nuevamente, como si las estuviera declarando.
Lo otro que me di cuenta es que no he necesitado solicitar memoria dinámica (no he probado aun, puede que mi aplicación se cierre), lo cual me parece extraño, tenia entendido que todos los punteros deben solicitar memoria dinámica.. C++ es como una nena.