Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/05/2014, 20:20
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 2 meses
Puntos: 38
Respuesta: Error con conversion de tipos/c++

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class inventario2; //Clase destino creada
  5.  
  6. class inventario1 { //Clase fuente
  7.         int codigo; //Codigo de unidad
  8.         int unidades; //Numero de unidades
  9.         float precio; //Coste de cada unidad
  10.     public:
  11.         inventario1 ( int a, int b, float c ) {
  12.             codigo = a;
  13.             unidades = b;
  14.             precio = c;
  15.         }
  16.         void putdatos() {
  17.             cout << " Codigo = " << codigo << "\n";
  18.             cout << " Unidades = " << unidades << "\n";
  19.             cout << " Precio = " << precio << "\n";
  20.         }
  21.         int getcodigo() {
  22.             return codigo;
  23.         }
  24.         int getunidades() {
  25.             return unidades;
  26.         }
  27.         float getprecio() {
  28.             return precio;
  29.         }
  30.         operator float() {
  31.             return ( unidades * precio );
  32.         }
  33.         operator inventario2() {
  34.             inventario2 temp;
  35.             temp.codigo = codigo;
  36.             temp.valor = precio * unidades;
  37.             return temp;
  38.         }
  39. }; //Fin de la clase fuente
  40. class inventario2 {
  41.         int codigo;
  42.         float valor;
  43.     public:
  44.         inventario2() {
  45.             codigo = 0;
  46.             valor = 0;
  47.         }
  48.         inventario2 ( int x, float y ) { //Constructor
  49.             codigo = x; //para inicializacion
  50.             valor = y;
  51.         }
  52.         void putdatos() {
  53.             cout << " Codigo = " << codigo << "\n";
  54.             cout << " Valor = " << valor << "\n";
  55.         }
  56.         inventario2 ( inventario1 p ) { //Constructor para conversion
  57.             codigo = p.getcodigo();
  58.             valor = p.getunidades() * p.getprecio();
  59.         }
  60. }; //Fin de la clase destino
  61.  
  62. int main ( int argc, char * argv[] ) {
  63.     inventario1 s1 ( 100, 5, 140.0 );
  64.     inventario2 s2;
  65.     float valor_total;
  66.    
  67.     /* inventario1 a float */
  68.     valor_total = s1;
  69.     /* inventario1 a inventario2 */
  70.     s2 = s1;
  71.    
  72.     cout << " Detalles de productos - inventario tipo 1 " << "\n";
  73.     s1.putdatos();
  74.    
  75.     cout << "\n Valor del almacen " << "\n";
  76.     cout << " Valor = " << valor_total << "\n\n";
  77.    
  78.     cout << " Detalles de productos - inventario tipo 2 " << "\n";
  79.     s2.putdatos();
  80.    
  81.     return 0;
  82. }

Te lo arreglo para que vean.