C++ Estructura dinamica.

Iniciado por eduardo1012, 20 Noviembre 2016, 19:30 PM

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

eduardo1012

Buenas estoy tratando de hacer un programa en c++ :
Desarrolla un programa en C++ que represente el control del inventario en una empresa que produce aparatos electrodomésticos.
Considera el producto terminado (modelos de por electrodoméstico).
El programa debe: permitir introducir n modelos, con nombre, descripción, precio a la compra, precio a la venta, línea de producción y cantidad,
actualizar datos, permitir la venta de productos manteniendo el registro del cliente y actualizando el inventario.
Validación de datos.
Interfaz GUI fácil de operar.
Imprimir recibos de ventas realizadas (mayoreo).

El problema tengo a la hora de hacer mi estructura (creo que el camino correcto es hacerlo por estructura, si estoy mal alguien corríjame) donde al reservar la memoria para la estructura no puedo.
Header Registro.hpp
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

class Registro{

private: //Modificadores de Acceso
typedef struct{
int precio_compra,precio_venta,linea_produccion,cantidad;
string nombre,descripcion;
}Almacen;

int n_modelos;
Almacen **_dato;


public: //Modificadores de Acceso
Registro();
~Registro();

void setN_modelos(int); // set Inicializa las Variables
int getN_modelos(); // get Retorna las variables
void setPrecio_compra(int);
int getPrecio_venta();
void setPrecio_venta(int);
int setPrecio_venta();
void setLinea_produccion(int);
int setLinea_produccion();
void setCantidad(int);
int setCantidad();
void setNombre(string);
string setNombre();
void setDescripcion(string);
string setDescripcion();

};

Registro .cpp
Código (cpp) [Seleccionar]
#include "Registro.hpp"

Registro::Registro(){
//cout<<endl<<"Alumno: ";


_dato = new int*[n_modelos];
for (int i=0;i<n_modelos;i++){
*(_dato+i)= new  [2]; //*nombres[i]=new string[3]
}
setCalificaciones(n_modelos,_dato);
}

Registro::~Registro(){

}

El error que me marca es : cannot convert 'int**' to 'Registro::Almacen**' in assignment, alguien podría ayudarme.

ivancea96

_dato es: Almacen **_dato;
Y le tratas de asignar un int**: _dato = new int*[n_modelos];

Querrías decir: _dato = new Almacen*[n_modelos];