elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Que estoy haciendo mal arreglo? (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Que estoy haciendo mal arreglo? (Solucionado)  (Leído 4,249 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Que estoy haciendo mal arreglo?
« Respuesta #10 en: 4 Febrero 2014, 03:29 am »

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 Desconectado

Mensajes: 319


Ver Perfil
Re: Que estoy haciendo mal arreglo?
« Respuesta #11 en: 4 Febrero 2014, 03:42 am »

Aca esta la .h he estado trando de hacer lo que me dices como puedes ver.
Código
  1. #ifndef CAMION_H
  2. #define CAMION_H
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. extern Camion**listaDeCamiones;
  7.  
  8. // Variables globales
  9. class Camion
  10. {
  11.      private:
  12.      int idCamion;
  13.      int cilindrajeCamion;
  14.      int nPuertasCamion;
  15.      int anioCamion;
  16.      double precioCamion;
  17.      string marcaCamion, modeloCamion, colorCamion;
  18.  
  19.      public:
  20.      Camion(int =0, int=0, int=0, int=0, double = 0.0, string = "", string = "", string = "");
  21.  
  22.      void setIdCamion(int);
  23.      void setCilindrajeCamion(int);
  24.      void setNPuertasCamion(int);
  25.      void setanioCamion(int);
  26.      void setPrecioCamion(double);
  27.      void setMarcaCamion(string);
  28.      void setModeloCamion(string);
  29.      void setColorCamion(string);
  30.  
  31.      int getIdCamion() const;
  32.      int getCilindrajeCamion() const;
  33.      int getnPuertasCamion() const;
  34.      int getanioCamion() const;
  35.      string getMarcaCamion() const;
  36.      string getModeloCamion() const;
  37.      string getColorCamion() const;
  38.      double getPrecioCamion() const;
  39.  
  40.      //Otros Metodos
  41.      void ingresarCamion();
  42.      void listaDeCamiones();
  43.      void imprmir();
  44.  
  45. };
  46. #endif

y aca la cpp

Código
  1. #include "Camion.h"
  2. #include <iostream>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6.     Camion**listaDeCamiones;
  7.     const int Maximo =100;
  8.     int cantidadDeCamiones =0;
  9.  
  10. Camion::Camion (int idCam, int cilindrajeCam, int puertasCam, int anioCam,
  11.                double precioCam, string marcaCam, string modeloCam,
  12.                string colorCam)
  13.                {
  14.                   idCamion = idCam;
  15.                   cilindrajeCamion = cilindrajeCam;
  16.                   nPuertasCamion = puertasCam;
  17.                   anioCamion = anioCam;
  18.                   precioCamion = precioCam;
  19.                   marcaCamion = marcaCam;
  20.                   modeloCamion = modeloCam;
  21.                   colorCamion = colorCam;
  22.                }
  23. //Funciones set
  24. void Camion::setIdCamion(int idCam)
  25. {
  26.     idCamion = idCam;
  27. }
  28.  
  29. void Camion::setCilindrajeCamion(int cilindrajeCam)
  30. {
  31.     cilindrajeCamion = cilindrajeCam;
  32. }
  33.  
  34. void Camion::setNPuertasCamion(int puertasCam)
  35. {
  36.     nPuertasCamion = puertasCam;
  37. }
  38.  
  39. void Camion::setanioCamion(int anioCam)
  40. {
  41.     anioCamion = anioCam;
  42. }
  43.  
  44. void Camion::setPrecioCamion(double precioCam)
  45. {
  46.     precioCamion = precioCam;
  47. }
  48.  
  49. void Camion::setMarcaCamion(string marcaCam)
  50. {
  51.     marcaCamion = marcaCam;
  52. }
  53.  
  54. void Camion::setModeloCamion(string modeloCam)
  55. {
  56.     modeloCamion = modeloCam;
  57. }
  58.  
  59. void Camion::setColorCamion(string colorCam)
  60. {
  61.     colorCamion = colorCam;
  62. }
  63.  
  64. //Funciones get
  65. int Camion::getIdCamion() const
  66. {
  67.    return idCamion;
  68. }
  69.  
  70. int Camion::getCilindrajeCamion() const
  71. {
  72.    return cilindrajeCamion;
  73. }
  74.  
  75. int Camion::getnPuertasCamion() const
  76. {
  77.    return nPuertasCamion;
  78. }
  79.  
  80. int Camion::getanioCamion()const
  81. {
  82.    return anioCamion;
  83. }
  84.  
  85. double Camion::getPrecioCamion() const
  86. {
  87.       return precioCamion;
  88. }
  89.  
  90. string Camion::getMarcaCamion() const
  91. {
  92.       return marcaCamion;
  93. }
  94.  
  95. string Camion::getModeloCamion() const
  96. {
  97.       return modeloCamion;
  98. }
  99.  
  100. string Camion::getColorCamion() const
  101. {
  102.       return colorCamion;
  103. }
  104.  
  105. void Camion::ingresarCamion()
  106. {
  107.   Camion**listaDeCamiones = new Camion*[Maximo];// arreglo de 100
  108.   if (cantidadDeCamiones < Maximo)
  109.   {
  110.  
  111.     system("cls");
  112.     cout << "Ingrese los datos del camion\n";
  113.     cout << "Ingrese el ID del camion: ";
  114.     cin  >> idCamion;
  115.  
  116.     cout << "Ingrese la Marca del Camion: ";
  117.     cin  >> marcaCamion;
  118.  
  119.     cout << "Ingrese el Modelo del camion: ";
  120.     cin  >> modeloCamion;
  121.  
  122.     cout << "Ingrese el año del Camion: ";
  123.     cin  >> anioCamion;
  124.  
  125.     cout << "Ingrese el cilindraje del camion: ";
  126.     cin  >> cilindrajeCamion;
  127.  
  128.     cout << "Ingrese el numero de puertas: ";
  129.     cin  >>  nPuertasCamion;
  130.  
  131.     cout << "Ingrese el color del camion: ";
  132.     cin  >> colorCamion;
  133.  
  134.     cout << "Ingrese el presio del camion: ";
  135.     cin  >> precioCamion;
  136.  
  137.     listaDeCamiones[cantidadDeCamiones] = new Camion(idCamion, cilindrajeCamion,
  138.                                                      nPuertasCamion, anioCamion,
  139.                                                      precioCamion, marcaCamion,
  140.                                                      modeloCamion,colorCamion);
  141.     cantidadDeCamiones++;
  142.  
  143.     cout << "Los datos del camion fueron ingresados correctamente\n\n";
  144.   }
  145.   else
  146.   {
  147.       system("cls");
  148.       cout << "Ya no hay espacio disponible para mas camiones\n\n";
  149.   }
  150. }
  151.  
  152. void Camion::listaDeCamiones()
  153. {
  154.     if (cantidadDeCamiones==0)
  155.     {
  156.       system("cls");
  157.       cout<<"No se a registrado ninguna Camion todavía"<<endl;
  158.       }
  159.       else
  160.       {
  161.           cout<<"..:::Lista de Camiones:::.."<<endl<<endl;
  162.           cout << setw(10)<<"Id Camion"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl;
  163.           cout<<"================================================="<<endl;
  164.  
  165.           //Imprimmir todas las personas almacenadas en el arreglo de personas
  166.           for (int i=0; i<cantidadDeCamiones;i++)
  167.           {
  168.            listaDeCamiones[i]->imprmir();
  169.           }
  170.           cout<<endl<<"*******Fin de la lista **********"<<endl<<endl;
  171.           }
  172. }
  173. /*
  174. void imprmir()
  175. {
  176.      cout<<setw(10)<<idCamion<<setw(15)<<modeloCamion<<setw(15)<<marcaCamion<<endl;
  177. }*/


En línea

Lo que se puede imaginar... se puede programar.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Que estoy haciendo mal arreglo?
« Respuesta #12 en: 4 Febrero 2014, 03:58 am »

cpp
Código:

#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:
Código:
#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 Desconectado

Mensajes: 319


Ver Perfil
Re: Que estoy haciendo mal arreglo?
« Respuesta #13 en: 4 Febrero 2014, 04:15 am »

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 Desconectado

Mensajes: 1.908


Ver Perfil
Re: Que estoy haciendo mal arreglo? (Solucionado)
« Respuesta #14 en: 4 Febrero 2014, 04:24 am »

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 Desconectado

Mensajes: 319


Ver Perfil
Re: Que estoy haciendo mal arreglo? (Solucionado)
« Respuesta #15 en: 4 Febrero 2014, 04:41 am »

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.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Que estoy haciendo mal arreglo? (Solucionado)
« Respuesta #16 en: 4 Febrero 2014, 06:58 am »

De nadas suerte  ::)
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿ Que estoy haciendo mal ? « 1 2 »
Programación Visual Basic
Mr.Know 13 3,839 Último mensaje 15 Junio 2010, 12:16 pm
por Psyke1
[?]Perl ¿Qué estoy haciendo mal?
Scripting
Fritos 3 1,997 Último mensaje 15 Junio 2010, 19:32 pm
por xassiz_
[SEO google ]No se que estoy haciendo mal D=
Desarrollo Web
Kase 9 2,886 Último mensaje 31 Julio 2011, 14:53 pm
por reflol
[Solucionado]Como puedo mezclar un arreglo
Java
PabloPbl 4 5,660 Último mensaje 6 Febrero 2015, 22:47 pm
por PabloPbl
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines