Programación General > C/C++

 error de compilacion que no encuentro c++

(1/1)

john994:
/* 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:
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++ --- const int M=50; // Tamaño del arreglo class MovieData{char title[M]; //Titulo de la pelicilachar director[M]; // Nombre del directorint year; //Año de la peliculaint Running_time; //Tiempo en minutospublic:void impimir_pelicula(MovieData,MovieData);void info_pelicula(MovieData&,MovieData&);}; Y en el fichero prueba.cpp:[code=cpp]/* me sale un error pero no se como corregirlo porfa ayuda 5 estrellasel programa te pide informacion sobre 2 peliculas y despues te las muestra*/#include <iostream>#include <string>#include "prueba.h"using namespace std; 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;} int main() {MovieData miclase; //movie1=variable de la primera pelicula movie2=variable de la segunda peliculaMovieData movie1,movie2;miclase.impimir_pelicula(movie1,movie2);miclase.info_pelicula(movie1,movie2);system ("pause");return 0;}  
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){   
}

Navegación

[0] Índice de Mensajes

Ir a la versión completa