Ayuda Dev c++ Error AppCrash al compilar y ejecutar

Iniciado por Raiden, 8 Agosto 2020, 05:06 AM

0 Miembros y 1 Visitante están viendo este tema.

Raiden

Buenas a todos,
Tengo un problema, estoy tratando de compilar con un constructor con varias variables, al codigo lo compila con exito pero al momento de darle click al exe tira un error AppCrash.
Porque me tira este error el IDE?
Gracias

El codigo es este:
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;

class Factura
{
     public:
               
               
               Factura(string pieza,string descripcion,int cantidad, int precio )
               {
               CodigoPieza=pieza;
               DescripcionPieza=descripcion;
               CantidadPieza=cantidad;
               PrecioPieza=precio;
               }
               string ObtenerMensaje()
                   {
                       cout<<CodigoPieza<<endl<<
                       DescripcionPieza<<endl<<
                       CantidadPieza<<endl<<
                       PrecioPieza<<endl;
                   }
               private:
                   string CodigoPieza;
               string DescripcionPieza;
               int CantidadPieza;
               int PrecioPieza;    
};

int main()
{
   
   Factura Compra("1000","ESPEJO",23,4324);
   
   
   cout<<"estos son los datos"<<Compra.ObtenerMensaje();
   
   std::system("Pause");
   return 0;
}
   

BloodSharp

Cita de: Raiden en  8 Agosto 2020, 05:06 AMTengo un problema, estoy tratando de compilar con un constructor con varias variables, al codigo lo compila con exito pero al momento de darle click al exe tira un error AppCrash.
Porque me tira este error el IDE?

Porque estás retornando una dirección basura en la función ObtenerMensaje y el programa no puede leer direcciones inválidas, te dejo el código funcionando, le quité el string y reemplazé por void:

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;

class Factura
{
    public:
        Factura(string pieza,string descripcion,int cantidad, int precio )
        {
            CodigoPieza=pieza;
            DescripcionPieza=descripcion;
            CantidadPieza=cantidad;
            PrecioPieza=precio;
        }

        void ObtenerMensaje()
        {
            cout<<CodigoPieza<<endl<<
            DescripcionPieza<<endl<<
            CantidadPieza<<endl<<
            PrecioPieza<<endl;
        }
    private:
        string CodigoPieza;
        string DescripcionPieza;
        int CantidadPieza;
        int PrecioPieza;   
};

int main()
{   
    Factura Compra("1000","ESPEJO",23,4324);
    cout<<"estos son los datos: ";
    Compra.ObtenerMensaje();
    cin.ignore();
    return 0;
}


Resultado:



B#



Raiden

Gracias por la ayuda lo pude resolver de esa forma.

saludoss ::)