Autor
|
Tema: Que estoy haciendo mal arreglo? (Solucionado) (Leído 6,700 veces)
|
x64core
Desconectado
Mensajes: 1.908
|
Intenta así: .cpp: Camion** listaDeCamiones; .h: extern Camion**listaDeCamiones;
Luego al inicio del programa o en donde se necesite inicializa listaDeCamiones con new, etc.
Sino pues publica todo el código no podria decirte que es con exactitud ya que el código es incompleto.
|
|
|
En línea
|
|
|
|
nolasco281
Desconectado
Mensajes: 319
|
Aca esta la .h he estado trando de hacer lo que me dices como puedes ver. #ifndef CAMION_H #define CAMION_H #include <iostream> using namespace std; extern Camion**listaDeCamiones; // Variables globales class Camion { private: int idCamion; int cilindrajeCamion; int nPuertasCamion; int anioCamion; double precioCamion; string marcaCamion, modeloCamion, colorCamion; public: Camion(int =0, int=0, int=0, int=0, double = 0.0, string = "", string = "", string = ""); void setIdCamion(int); void setCilindrajeCamion(int); void setNPuertasCamion(int); void setanioCamion(int); void setPrecioCamion(double); void setMarcaCamion(string); void setModeloCamion(string); void setColorCamion(string); int getIdCamion() const; int getCilindrajeCamion() const; int getnPuertasCamion() const; int getanioCamion() const; string getMarcaCamion() const; string getModeloCamion() const; string getColorCamion() const; double getPrecioCamion() const; //Otros Metodos void ingresarCamion(); void listaDeCamiones(); void imprmir(); }; #endif
y aca la cpp #include "Camion.h" #include <iostream> #include <iomanip> using namespace std; Camion**listaDeCamiones; const int Maximo =100; int cantidadDeCamiones =0; Camion::Camion (int idCam, int cilindrajeCam, int puertasCam, int anioCam, double precioCam, string marcaCam, string modeloCam, string colorCam) { idCamion = idCam; cilindrajeCamion = cilindrajeCam; nPuertasCamion = puertasCam; anioCamion = anioCam; precioCamion = precioCam; marcaCamion = marcaCam; modeloCamion = modeloCam; colorCamion = colorCam; } //Funciones set void Camion::setIdCamion(int idCam) { idCamion = idCam; } void Camion::setCilindrajeCamion(int cilindrajeCam) { cilindrajeCamion = cilindrajeCam; } void Camion::setNPuertasCamion(int puertasCam) { nPuertasCamion = puertasCam; } void Camion::setanioCamion(int anioCam) { anioCamion = anioCam; } void Camion::setPrecioCamion(double precioCam) { precioCamion = precioCam; } void Camion::setMarcaCamion(string marcaCam) { marcaCamion = marcaCam; } void Camion::setModeloCamion(string modeloCam) { modeloCamion = modeloCam; } void Camion::setColorCamion(string colorCam) { colorCamion = colorCam; } //Funciones get int Camion::getIdCamion() const { return idCamion; } int Camion::getCilindrajeCamion() const { return cilindrajeCamion; } int Camion::getnPuertasCamion() const { return nPuertasCamion; } int Camion::getanioCamion()const { return anioCamion; } double Camion::getPrecioCamion() const { return precioCamion; } string Camion::getMarcaCamion() const { return marcaCamion; } string Camion::getModeloCamion() const { return modeloCamion; } string Camion::getColorCamion() const { return colorCamion; } void Camion::ingresarCamion() { Camion**listaDeCamiones = new Camion*[Maximo];// arreglo de 100 if (cantidadDeCamiones < Maximo) { system("cls"); cout << "Ingrese los datos del camion\n"; cout << "Ingrese el ID del camion: "; cin >> idCamion; cout << "Ingrese la Marca del Camion: "; cin >> marcaCamion; cout << "Ingrese el Modelo del camion: "; cin >> modeloCamion; cout << "Ingrese el año del Camion: "; cin >> anioCamion; cout << "Ingrese el cilindraje del camion: "; cin >> cilindrajeCamion; cout << "Ingrese el numero de puertas: "; cin >> nPuertasCamion; cout << "Ingrese el color del camion: "; cin >> colorCamion; cout << "Ingrese el presio del camion: "; cin >> precioCamion; listaDeCamiones[cantidadDeCamiones] = new Camion(idCamion, cilindrajeCamion, nPuertasCamion, anioCamion, precioCamion, marcaCamion, modeloCamion,colorCamion); cantidadDeCamiones++; cout << "Los datos del camion fueron ingresados correctamente\n\n"; } else { system("cls"); cout << "Ya no hay espacio disponible para mas camiones\n\n"; } } void Camion::listaDeCamiones() { if (cantidadDeCamiones==0) { system("cls"); cout<<"No se a registrado ninguna Camion todavía"<<endl; } else { cout<<"..:::Lista de Camiones:::.."<<endl<<endl; cout << setw(10)<<"Id Camion"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl; cout<<"================================================="<<endl; //Imprimmir todas las personas almacenadas en el arreglo de personas for (int i=0; i<cantidadDeCamiones;i++) { listaDeCamiones[i]->imprmir(); } cout<<endl<<"*******Fin de la lista **********"<<endl<<endl; } } /* void imprmir() { cout<<setw(10)<<idCamion<<setw(15)<<modeloCamion<<setw(15)<<marcaCamion<<endl; }*/
|
|
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
cpp #include "cpp1.h" #include <iostream> #include <iomanip> #include <string> using namespace std;
Camion::Camion (int idCam, int cilindrajeCam, int puertasCam, int anioCam, double precioCam, string marcaCam, string modeloCam, string colorCam) { idCamion = idCam; cilindrajeCamion = cilindrajeCam; nPuertasCamion = puertasCam; anioCamion = anioCam; precioCamion = precioCam; marcaCamion = marcaCam; modeloCamion = modeloCam; colorCamion = colorCam;
Maximo =100; cantidadDeCamiones = 0; } //Funciones set void Camion::setIdCamion(int idCam) { idCamion = idCam; } void Camion::setCilindrajeCamion(int cilindrajeCam) { cilindrajeCamion = cilindrajeCam; } void Camion::setNPuertasCamion(int puertasCam) { nPuertasCamion = puertasCam; } void Camion::setanioCamion(int anioCam) { anioCamion = anioCam; } void Camion::setPrecioCamion(double precioCam) { precioCamion = precioCam; } void Camion::setMarcaCamion(string marcaCam) { marcaCamion = marcaCam; } void Camion::setModeloCamion(string modeloCam) { modeloCamion = modeloCam; } void Camion::setColorCamion(string colorCam) { colorCamion = colorCam; } //Funciones get int Camion::getIdCamion() const { return idCamion; } int Camion::getCilindrajeCamion() const { return cilindrajeCamion; } int Camion::getnPuertasCamion() const { return nPuertasCamion; } int Camion::getanioCamion()const { return anioCamion; } double Camion::getPrecioCamion() const { return precioCamion; } string Camion::getMarcaCamion() const { return marcaCamion; } string Camion::getModeloCamion() const { return modeloCamion; } string Camion::getColorCamion() const { return colorCamion; } void Camion::ingresarCamion() { listaDeCamiones = new Camion*[Maximo];// arreglo de 100 if (cantidadDeCamiones < Maximo) { system("cls"); cout << "Ingrese los datos del camion\n"; cout << "Ingrese el ID del camion: "; cin >> idCamion; cout << "Ingrese la Marca del Camion: "; cin >> marcaCamion; cout << "Ingrese el Modelo del camion: "; cin >> modeloCamion; cout << "Ingrese el año del Camion: "; cin >> anioCamion; cout << "Ingrese el cilindraje del camion: "; cin >> cilindrajeCamion; cout << "Ingrese el numero de puertas: "; cin >> nPuertasCamion; cout << "Ingrese el color del camion: "; cin >> colorCamion; cout << "Ingrese el presio del camion: "; cin >> precioCamion; listaDeCamiones[cantidadDeCamiones] = new Camion(idCamion, cilindrajeCamion, nPuertasCamion, anioCamion, precioCamion, marcaCamion, modeloCamion,colorCamion); cantidadDeCamiones++; cout << "Los datos del camion fueron ingresados correctamente\n\n"; } else { system("cls"); cout << "Ya no hay espacio disponible para mas camiones\n\n"; } } void Camion::flistaDeCamiones() { if (cantidadDeCamiones==0) { system("cls"); cout<<"No se a registrado ninguna Camion todavía"<<endl; } else { cout<<"..:::Lista de Camiones:::.."<<endl<<endl; cout << setw(10)<<"Id Camion"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl; cout<<"================================================="<<endl; //Imprimmir todas las personas almacenadas en el arreglo de personas for (int i=0; i<cantidadDeCamiones;i++) { listaDeCamiones[i]->imprmir(); } cout<<endl<<"*******Fin de la lista **********"<<endl<<endl; } }
void Camion::imprmir() { cout<<setw(10)<<idCamion<<setw(15)<<modeloCamion<<setw(15)<<marcaCamion<<endl; }
h: #ifndef CAMION_H #define CAMION_H #include <iostream> using namespace std;
// Variables globales class Camion { private: int idCamion; int cilindrajeCamion; int nPuertasCamion; int anioCamion; double precioCamion; string marcaCamion, modeloCamion, colorCamion; public: Camion(int =0, int=0, int=0, int=0, double = 0.0, string = "", string = "", string = ""); void setIdCamion(int); void setCilindrajeCamion(int); void setNPuertasCamion(int); void setanioCamion(int); void setPrecioCamion(double); void setMarcaCamion(string); void setModeloCamion(string); void setColorCamion(string); int getIdCamion() const; int getCilindrajeCamion() const; int getnPuertasCamion() const; int getanioCamion() const; string getMarcaCamion() const; string getModeloCamion() const; string getColorCamion() const; double getPrecioCamion() const; //Otros Metodos void ingresarCamion(); void flistaDeCamiones(); void imprmir();
private: Camion**listaDeCamiones; int Maximo; int cantidadDeCamiones; }; #endif
|
|
|
En línea
|
|
|
|
nolasco281
Desconectado
Mensajes: 319
|
Ya está, te gradezco mucho por la ayuda y más por el tiempo que te tomaste créeme sea gradece mucho cuando estas trabado y alguien te ayuda. Saludos y mil gracias por la ayuda. y ahora entiendo lo que tratabas de decirme leeré sobre el extern y memoria dinámica para no tener este tipo de problemas. saludos y gracias.
|
|
« Última modificación: 4 Febrero 2014, 04:18 am por nolasco281 »
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
ningun extern en realidad, note que todo estaba encapsulado así que mejor decidi agregar las variables a la clase y que sean disponibles para todas las funciones de esa clase, inicializarlas en el contructor ,el array asignarle memoria al momento de usarlo ( recorda liberarlo ) aunque hubiera sido bueno incializarlo en el contructor así en el destructor se libera la memoria eso depende de como diseñes tu programa.
|
|
|
En línea
|
|
|
|
nolasco281
Desconectado
Mensajes: 319
|
Te comparto una imagenes de como va quedando despues lo arreglare mejor el array asignarle memoria al momento de usarlo ( recorda liberarlo ) aunque hubiera sido bueno incializarlo en el contructor así en el destructor se libera la memoria eso depende de como diseñes tu programa.
claro lo hare para liberar la memoria. gracias de nuevo.
|
|
« Última modificación: 4 Febrero 2014, 04:48 am por nolasco281 »
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿ Que estoy haciendo mal ?
« 1 2 »
Programación Visual Basic
|
Mr.Know
|
13
|
5,981
|
15 Junio 2010, 12:16 pm
por Psyke1
|
|
|
[?]Perl ¿Qué estoy haciendo mal?
Scripting
|
Fritos
|
3
|
3,100
|
15 Junio 2010, 19:32 pm
por xassiz_
|
|
|
[SEO google ]No se que estoy haciendo mal D=
Desarrollo Web
|
Kase
|
9
|
4,265
|
31 Julio 2011, 14:53 pm
por reflol
|
|
|
[Solucionado]Como puedo mezclar un arreglo
Java
|
PabloPbl
|
4
|
7,284
|
6 Febrero 2015, 22:47 pm
por PabloPbl
|
|
|
Hacer ícono con transparencia en W7 ¿qué estoy haciendo mal?
Windows
|
Tachikomaia
|
6
|
1,458
|
15 Septiembre 2024, 12:50 pm
por Eleкtro
|
|