La clase es esta:
Código
#ifndef CARTONES_H_INCLUDED #define CARTONES_H_INCLUDED #include <vector.h> #include <stdlib.h> #include <fstream.h> class Cartones{ private: fstream fArchivo; char *cNumeros; int iRangoInicio, iRangoFinal; int iCantNumeros; int iNumAcertadosMin, iNumAcertadosMax; int iNumSerie; int iCantNumerosAcertados; public: Cartones(int iRangoInicio, int iRangoFinal, int iCantNumeros); ~Cartones(); void generarNumerosDeCarton(); void guardarCartonAlArchivo(fstream &archivo); void leerCartonDesdeArchivo(fstream &archivo); int compararCartones(Cartones carton); // Getters & Setters void setNumSerie(int iNumSerie); void setCantNumerosAcertados(int iCantNumerosAcertados); char* getNumeros(); int getCantNumerosAcertados(); int getNumSerie(); int getCantNumeros(); }; Cartones::Cartones(int iRangoInicio, int iRangoFinal, int iCantNumeros){ this->iRangoInicio = iRangoInicio; this->iRangoFinal = iRangoFinal; this->iCantNumeros = iCantNumeros; this->cNumeros = new char[iRangoFinal]; } Cartones::~Cartones(){ delete[](this->cNumeros); this->cNumeros = NULL; } void Cartones::setNumSerie(int iNumSerie){this->iNumSerie = iNumSerie;} void Cartones::setCantNumerosAcertados(int iCantNumerosAcertados){this->iCantNumerosAcertados = iCantNumerosAcertados;} char* Cartones::getNumeros(){return this->cNumeros;} int Cartones::getNumSerie(){return this->iNumSerie;} int Cartones::getCantNumeros(){return this->iCantNumeros;} int Cartones::getCantNumerosAcertados(){return this->iCantNumerosAcertados;} void Cartones::generarNumerosDeCarton(){ int i = 0, aux = 0; while(i < this->iCantNumeros){ aux = random(this->iRangoFinal); if(aux < this->iRangoFinal && this->cNumeros[aux] != 'X'){ this->cNumeros[aux] = 'X'; i++; } } } int Cartones::compararCartones(Cartones carton){ int coincidencias = 0; for(int i=0; i<iRangoFinal; i++){ if(this->cNumeros[i] == 'X' && carton.cNumeros[i] == 'X'){ carton.cNumeros[i] = 'A'; coincidencias++; } } return coincidencias; } void Cartones::leerCartonDesdeArchivo(fstream &archivo){ int serie, aux; if(archivo.is_open() && archivo.gcount() > this->iCantNumeros){ archivo >> serie; this->setNumSerie(serie); for(int i=0; i<this->iCantNumeros; i++){ archivo >> aux; this->cNumeros[aux-1] = 'A'; } } } void Cartones::guardarCartonAlArchivo(fstream &archivo){ if(archivo.is_open()){ archivo << this->iNumSerie << endl; for(int i=0; i<this->iRangoFinal; i++) if(this->cNumeros[i] == 'A') archivo << i+1 << " "; } } #endif // CARTONES_H_INCLUDED
¿Como es la manera correcta de llenar el vector con las instancias?
Asi lo tengo declarado actualmente:
Código
int cantCartones = Edit1->Text.ToInt(); vector<Cartones> vCartones; fioArchivo.open("cartones.in"); for(int i=0; i<cantCartones; i++){ Cartones cCarton(1, 25, 15); cCarton.setNumSerie(i); cCarton.generarNumerosDeCarton(); cCarton.guardarCartonAlArchivo(fioArchivo); vCartones.push_back(cCarton); } fioArchivo.close();
y me esta tirando el siguiente error:
Citar
[C++ Error] _construct.h(85): E2285 Could not find a match for 'Cartones::Cartones(const Cartones)'