• Sábado 14 de Diciembre de 2024, 14:42

Autor Tema:  error de compilacion que no encuentro c++  (Leído 1537 veces)

john994

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
error de compilacion que no encuentro c++
« en: Domingo 1 de Mayo de 2011, 19:51 »
0
/* me sale un error pero no se como corregirlo porfa ayuda 5 estrellas
el programa te pide informacion sobre 2 peliculas y despues te las muestra*/
#include<iostream>
#include<string>
using namespace std;

const int M=50; // Tamaño del arreglo

class MovieData{
char title[M]; //Titulo de la pelicila
char director[M]; // Nombre del director
int year; //Año de la pelicula
int Running_time; //Tiempo en minutos
public:
void impimir_pelicula(MovieData,MovieData);
void info_pelicula(MovieData&,MovieData&);
};
int main()
{
MovieData miclase; //movie1=variable de la primera pelicula movie2=variable de la segunda pelicula
MovieData movie1,movie2;
miclase.impimir_pelicula(MovieData movie1,MovieData movie2);
miclase.info_pelicula(MovieData &movie1,MovieData &movie2);
system ("pause");
return 0;
}
void MovieData::info_pelicula(MovieData &m1,MovieData &m2){
cout<<"nn ******** PRIMERA PELICULA ********** n";
cout<<"n Ingrese el nombre de la pelicula:n";
cin.getline(m1.title,M); //lee un string (title)
cout<<"n Ingrese el nombre del director:n";
cin.getline(m1.director,M);
cout<<"nIngrese el año de emision de la pelicula:n";
cin>>m1.year;
cout<<"nIngrese la duracion de la pelicula en minutos:n";
cin>>m1.Running_time;
cout<<"nn ******** SEGUNDA PELICULA ********** n";
cout<<"n Ingrese el nombre de la pelicula:n";
cin.getline(m2.title,M); //lee un string (title)
cout<<"n Ingrese el nombre del director:n";
cin.getline(m2.director,M);
cout<<"nIngrese el año de emision de la pelicula:n";
cin>>m2.year;
cout<<"nIngrese la duracion de la pelicula en minutos:n";
cin>>m2.Running_time;




}
void MovieData:: impimir_pelicula(MovieData m1,MovieData m2){
cout<<"nn ******** PRIMERA PELICULA ********** n";
cout<<" Nombre de la pelicula:"<<m1.title<<endl;
cout<<"Nombre del director:"<<m1.director<<endl;
cout<<"Año de emision de la pelicula:"<<m1.year<<endl;
cout<<"Duracion de la pelicula en minutos:"<<m1.Running_time;
cout<<"nn ******** SEGUNDA PELICULA ********** n";
cout<<" Nombre de la pelicula:"<<m2.title<<endl;
cout<<"Nombre del director:"<<m2.director<<endl;
cout<<"Año de emision de la pelicula:"<<m2.year<<endl;
cout<<"Duracion de la pelicula en minutos:"<<m2.Running_time;
}

alexg88

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: error de compilacion que no encuentro c++
« Respuesta #1 en: Domingo 1 de Mayo de 2011, 21:53 »
0
Yo lo he compilado y no se sale ningún error sólo un warning. Supongo que habrás puesto la declaración de la clase en un fichero .h y el resto en un .cpp.

Es decir, en un fichero prueba.h:

Código: C++
  1.  
  2. const int M=50; // Tamaño del arreglo
  3.  
  4. class MovieData{
  5. char title[M]; //Titulo de la pelicila
  6. char director[M]; // Nombre del director
  7. int year; //Año de la pelicula
  8. int Running_time; //Tiempo en minutos
  9. public:
  10. void impimir_pelicula(MovieData,MovieData);
  11. void info_pelicula(MovieData&,MovieData&);
  12. };
  13.  
  14. Y en el fichero prueba.cpp:
  15. [code=cpp]
  16. /* me sale un error pero no se como corregirlo porfa ayuda 5 estrellas
  17. el programa te pide informacion sobre 2 peliculas y despues te las muestra*/
  18. #include <iostream>
  19. #include <string>
  20. #include "prueba.h"
  21. using namespace std;
  22.  
  23. void MovieData::info_pelicula(MovieData &m1,MovieData &m2){
  24. cout<<"nn ******** PRIMERA PELICULA ********** n";
  25. cout<<"n Ingrese el nombre de la pelicula:n";
  26. cin.getline(m1.title,M); //lee un string (title)
  27. cout<<"n Ingrese el nombre del director:n";
  28. cin.getline(m1.director,M);
  29. cout<<"nIngrese el año de emision de la pelicula:n";
  30. cin>>m1.year;
  31. cout<<"nIngrese la duracion de la pelicula en minutos:n";
  32. cin>>m1.Running_time;
  33. cout<<"nn ******** SEGUNDA PELICULA ********** n";
  34. cout<<"n Ingrese el nombre de la pelicula:n";
  35. cin.getline(m2.title,M); //lee un string (title)
  36. cout<<"n Ingrese el nombre del director:n";
  37. cin.getline(m2.director,M);
  38. cout<<"nIngrese el año de emision de la pelicula:n";
  39. cin>>m2.year;
  40. cout<<"nIngrese la duracion de la pelicula en minutos:n";
  41. cin>>m2.Running_time;
  42. }
  43.  
  44. void MovieData::impimir_pelicula(MovieData m1,MovieData m2){
  45. cout<<"nn ******** PRIMERA PELICULA ********** n";
  46. cout<<" Nombre de la pelicula:"<<m1.title<<endl;
  47. cout<<"Nombre del director:"<<m1.director<<endl;
  48. cout<<"Año de emision de la pelicula:"<<m1.year<<endl;
  49. cout<<"Duracion de la pelicula en minutos:"<<m1.Running_time;
  50. cout<<"nn ******** SEGUNDA PELICULA ********** n";
  51. cout<<" Nombre de la pelicula:"<<m2.title<<endl;
  52. cout<<"Nombre del director:"<<m2.director<<endl;
  53. cout<<"Año de emision de la pelicula:"<<m2.year<<endl;
  54. cout<<"Duracion de la pelicula en minutos:"<<m2.Running_time;
  55. }
  56.  
  57. int main()
  58. {
  59. MovieData miclase; //movie1=variable de la primera pelicula movie2=variable de la segunda pelicula
  60. MovieData movie1,movie2;
  61. miclase.impimir_pelicula(movie1,movie2);
  62. miclase.info_pelicula(movie1,movie2);
  63. system ("pause");
  64. return 0;
  65. }
  66.  
  67.  

Lo que tienes mal y por eso te lanza una advertencia es que no inicializas los atributos de los objetos en un constructor, por ejemplo:

MovieData::MovieData():year(0),Running_time(0){   
}