
Error de Referencia Indefinida
Publicado por Sergio (5 intervenciones) el 13/02/2016 21:42:13
Me tira una referencia indefinida en la class Cheque y en la class NotaCredito y no entiendo porque ayudaaaaaa. aqui les adjunto el codigo.
#include <iostream>
using namespace std;
class Documento{
protected:
int numero;
int fecha;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
class Cheque : public Documento{
private:
string Beneficiario;
int Monto;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
class NotaCredito : public Documento{
private:
string Cliente;
int Monto;
string Motivo;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
/*IMPLEMENTACIONES*/
void Documento::TipoDocumento(){}
void Documento::LlenarDatos(){}
void Documento::ImprimirDocumento(){}
/*CHEQUE*/
void Cheque::LlenarDatos(){
cout<<"\nNuevo Cheque";
cout<<"\nNumero de Cheque: ";
cin>> numero;
cout<<"\nFecha: ";
cin>> fecha;
cout<<"\nIngrese el Nombre del Beneficiario: ";
cin.ignore();
getline(cin,Beneficiario);
cout<<"\nIngrese el Monto: ";
cin>> Monto;
}
void Cheque::ImprimirDocumento(){
cout<<"\n\nCheque";
cout<<"\nNumero de Cheque: " << numero;
cout<<"\nFecha del Cheque: " << fecha;
cout<<"\nNombre del Beneficiario: " << Beneficiario;
cout<<"\nMonto del Cheque: " << Monto;
}
/*NOTACREDITO*/
void NotaCredito::LlenarDatos(){
cout<<"\n\nNota de Credito";
cout<<"\nNumero de NC: ";
cin>> numero;
cout<<"\nFecha de NC: ";
cin>> fecha;
cout<<"\nNombre del Cliente: ";
cin.ignore();
getline(cin, Cliente);
cout<<"\nCantidad de NC: ";
cin>> Monto;
cout<<"\nIngrese el Motivo de la NC: ";
cin.ignore();
getline(cin, Motivo);
}
void NotaCredito::ImprimirDocumento(){
cout<<"\n\nNota de Credito";
cout<<"\nNumero de NC: " << numero;
cout<<"\nFecha de NC: " << fecha;
cout<<"\nNombre del Cliente: " << Cliente;
cout<<"\nCantidad de NC: " << Monto;
cout<<"\nMotivo de la NC: " << Motivo;
}
/* ////VARIABLES GLOBALES\\\\ */
int posicion=0;
Documento *tipo_documento[5];
void CrearCheque(){
tipo_documento[posicion] = new Cheque;
tipo_documento[posicion]->LlenarDatos();
posicion++;
}
void CrearNotaCredito(){
tipo_documento[posicion] = new NotaCredito;
tipo_documento[posicion]->LlenarDatos();
posicion++;
}
void MostrarDocumento(){
for (int i = 0; i < posicion; i++){
tipo_documento[i]->ImprimirDocumento();
}
}
void MenuSistema(){
int opc = 0;
do{
cout<<"\n\n *** OPCIONES DE DOCUMENTO *** ";
cout<<"\n1. Crear un Cheque";
cout<<"\n2. Crear una Nota de Credito";
cout<<"\n3. Mostrar Documentos";
cout<<"\n4. Salir del Sistema\n";
cout<<"Ingrese su Opcion: ";
cin >> opc;
switch(opc){
case 1:
CrearCheque();
break;
case 2:
CrearNotaCredito();
break;
case 3:
MostrarDocumento();
break;
default:
break;
}
}while(opc != 4);
}
int main()
{
MenuSistema();
return 0;
}
#include <iostream>
using namespace std;
class Documento{
protected:
int numero;
int fecha;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
class Cheque : public Documento{
private:
string Beneficiario;
int Monto;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
class NotaCredito : public Documento{
private:
string Cliente;
int Monto;
string Motivo;
public:
virtual void TipoDocumento();
virtual void LlenarDatos();
virtual void ImprimirDocumento();
};
/*IMPLEMENTACIONES*/
void Documento::TipoDocumento(){}
void Documento::LlenarDatos(){}
void Documento::ImprimirDocumento(){}
/*CHEQUE*/
void Cheque::LlenarDatos(){
cout<<"\nNuevo Cheque";
cout<<"\nNumero de Cheque: ";
cin>> numero;
cout<<"\nFecha: ";
cin>> fecha;
cout<<"\nIngrese el Nombre del Beneficiario: ";
cin.ignore();
getline(cin,Beneficiario);
cout<<"\nIngrese el Monto: ";
cin>> Monto;
}
void Cheque::ImprimirDocumento(){
cout<<"\n\nCheque";
cout<<"\nNumero de Cheque: " << numero;
cout<<"\nFecha del Cheque: " << fecha;
cout<<"\nNombre del Beneficiario: " << Beneficiario;
cout<<"\nMonto del Cheque: " << Monto;
}
/*NOTACREDITO*/
void NotaCredito::LlenarDatos(){
cout<<"\n\nNota de Credito";
cout<<"\nNumero de NC: ";
cin>> numero;
cout<<"\nFecha de NC: ";
cin>> fecha;
cout<<"\nNombre del Cliente: ";
cin.ignore();
getline(cin, Cliente);
cout<<"\nCantidad de NC: ";
cin>> Monto;
cout<<"\nIngrese el Motivo de la NC: ";
cin.ignore();
getline(cin, Motivo);
}
void NotaCredito::ImprimirDocumento(){
cout<<"\n\nNota de Credito";
cout<<"\nNumero de NC: " << numero;
cout<<"\nFecha de NC: " << fecha;
cout<<"\nNombre del Cliente: " << Cliente;
cout<<"\nCantidad de NC: " << Monto;
cout<<"\nMotivo de la NC: " << Motivo;
}
/* ////VARIABLES GLOBALES\\\\ */
int posicion=0;
Documento *tipo_documento[5];
void CrearCheque(){
tipo_documento[posicion] = new Cheque;
tipo_documento[posicion]->LlenarDatos();
posicion++;
}
void CrearNotaCredito(){
tipo_documento[posicion] = new NotaCredito;
tipo_documento[posicion]->LlenarDatos();
posicion++;
}
void MostrarDocumento(){
for (int i = 0; i < posicion; i++){
tipo_documento[i]->ImprimirDocumento();
}
}
void MenuSistema(){
int opc = 0;
do{
cout<<"\n\n *** OPCIONES DE DOCUMENTO *** ";
cout<<"\n1. Crear un Cheque";
cout<<"\n2. Crear una Nota de Credito";
cout<<"\n3. Mostrar Documentos";
cout<<"\n4. Salir del Sistema\n";
cout<<"Ingrese su Opcion: ";
cin >> opc;
switch(opc){
case 1:
CrearCheque();
break;
case 2:
CrearNotaCredito();
break;
case 3:
MostrarDocumento();
break;
default:
break;
}
}while(opc != 4);
}
int main()
{
MenuSistema();
return 0;
}
Valora esta pregunta


0