almacen a;
a.crear_archivo();
a.insertar_campo("pruebaOEIOIEOCIo", 2);
cout << a.obtener_campo(2);
CitarError 3 error C1001: Error interno en el compilador.
Definicion de la problemática clase:
class almacen
{
private:
string directorio = string(DIRECTORIO_INSTALACION) + string(NOMBRE_ALMACEN);
string *delimitadores = new string[5]{
"Cqwerwerwerwer23t23tt",
"7348b3835grtjebr6uertt",
"nyFtCn4jPKItqWCAdJn66",
"QT36ub356iub356ub635"
"y98NYN8YA89CYA898333"};
public:
bool crear_archivo();
bool existe_archivo();
bool corrupto_archivo();
bool insertar_campo(string datos, int campo);
string obtener_campo(int campo);
bool eliminar_campo(int campo);
bool encriptar_archivo();
bool desencriptar_archivo();
};
Saludos.
Sea o no sea este el error, en C++ los campos de las clases se inicializan en los constructores, ya sea llamando a los constructores de los campos, o inicializándolos en el código del constructor.
Hola, no siempre es necesario declarar un constructor, puedo ponerlo o no, no creo que sea el fallo, de todas formas toca la moral, porque sigue fallando. Además se alternan el "error interno de compilador" con "Error 3 error LNK1136: archivo no válido o dañado", no sé todo lo que sea declarar una clase de tipo almacén hace saltar uno de esos errores, quizás tenga que reestructurarla entera, o crear nuevo proyecto.. :( :(
Saludos.
Edito: Odio cuando estás programando y te salen errores de estos de ** y te ** el día.
Edito: JAJAJA he podido flipar, lo he declarado como puntero a clase y compila, según leí entre otras cosas era que podía superar la memoria asignada para la aplicación y por eso saltaba el error, no sé si ponerlo como puntero tendrá que ver pero ha compilado (aunque no quiero poner un puntero XD).
Edito: hehe no funciona el puntero.
Edicion final de delicatese: Ya lo solucioné, el problema estaba al declarar la string con los 4 delimitadores, creé otra clase y fui añadiendo cosas hasta que ví donde saltaba el error, ahora tengo un vector<string> delimitadores, y hago pushback en el constructor.
Saludos.