Autor
|
Tema: Ayuda Clases c++ (Leído 5,092 veces)
|
kyon19
Desconectado
Mensajes: 6
|
Vereis soy nuevo en esto de la programación en c++, y empecé con "c" el año pasado... el caso es que tengo una práctica para febrero y estoy un poco liado... tengo una clase que se llama documento y querría listar por pantalla los documentos existentes... y no se me ocurre como hacerlo... la clase la tengo así: class Documento { private: //Atributos privados de la clase documentos. char Titulo[20]; char Genero[20]; char Idioma[20]; int Edad_recomendada; int año; int Prestado; int Dias_prestamo; public: //constructor. // Documento ():Titulo("Desconocido"), Genero("Desconocido"), Editorial("Desconocido"), Autor("Desconocido"), Idioma("Desconocido"), Edad_recomendada(0), año(0), Dias_prestamo(0){} }; int main() { Documento doc1; Documento doc2; ... Documento doc8; system("PAUSE"); return 0; } Lo que quería era usar un for y fuese buscando hasta que el documento no existiese pero claro... no sé como hacer eso... una cosa es pensarlo y otra escribirlo... jaja Otro problema en este mismo código es que los char no me los compila, cuando introduzco el constructor y le meto los datos "Desconocido" a los diferentes char me da error y al crear un documento del tipo de la clase y pasarle la cadena también me da fallo... Un Saludo y gracias de antemano
|
|
« Última modificación: 23 Enero 2011, 13:27 pm por kyon19 »
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Si te sirve en C, me saco esto de la manga jeje... #include <stdio.h> int main () { struct documento { char titulo[20]; char genero[20]; char idioma[20]; int edad_recomendada; int axo; int prestado; int dias_prestamo; }; int num, i; struct documento docs [num]; for (i = 0; i<num; i++) { fgets (docs [i ]. titulo, 20, stdin ); fgets (docs [i ]. genero, 20, stdin ); fgets (docs [i ]. idioma, 20, stdin ); printf ("Edad recm. %d: ", i ); scanf ("%d", &docs [i. edad_recomendada]); scanf ("%d", &docs [i. axo]); scanf ("%d", &docs [i. prestado]); printf ("Dias prestamo %d: ", i ); scanf ("%d", &docs [i. dias_prestamo]); } return 0; }
Ahi te lo dejo. Ahora debes continuar con el ejercicio jeje... Lo de dias prestamo podrias calcular el tiempo... Mira funciones de tiempo en el "Rincon del C++". Lo explican muy bien... (Url: Google). Y lo de prestado puedes usar tmb tiempo, pero solo obtenerlo... Ahora deberias meterle algo para que vaya guardando en algun sitio, un fichero, etc... Suerte!
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
kyon19
Desconectado
Mensajes: 6
|
No me sirve en C... jajaja yo pensé algo asi pero no me dejan... ahora estamos con C++ aunque gracias de todas formas espero que alguien sepa como conseguir que me lea los char en C++ con las clases... y respecto a lo de los ficheros para guardarlo gracias por avisar, le meti unos también en C++
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Puedes utilizar un arreglo de objetos: #include <iostream> using std::cout; using std::endl; using std::cin; using std::string; class Documento { private: //Atributos privados de la clase documentos. string Titulo; string Genero; string Idioma; int Edad_recomendada; int ano; int Prestado; int Dias_prestamo; public: Documento(const string &Titulo, const string &Genero, const string &Idioma, const int &Edad_recomendada) { this->Titulo = Titulo; this->Genero = Genero; this->Edad_recomendada = Edad_recomendada; } // Setters and getters // Libros ():Titulo("Desconocido"), Genero("Desconocido"), Editorial("Desconocido"), Autor("Desconocido"), Idioma("Desconocido"), Edad_recomendada(0), año(0), Dias_prestamo(0){} }; int main(void) { // Creación: Documento **docs = new Documento *[10]; // Liberación: for(unsigned int i = 0; i < n; i++) delete arreglo[i]; delete arreglo; return 0; }
Es solo un borrador, faltan los setters y getters y lo que tengas que hacer con los objetos.
|
|
|
En línea
|
|
|
|
kyon19
Desconectado
Mensajes: 6
|
Bueno mas o menos basandome en esos dos códigos que me pusisteis hice este: #include <cstdlib> #include <iostream> #include <stdio.h> #include <string.h> using namespace std; //Clases Definidas. class Documento { private: //Atributos privados de la clase documentos. string Titulo; string Genero; string Idioma; int Edad_recomendada; int año; int Prestado; int Dias_prestamo; public: Documento ():Titulo("Desconocido"), Genero("Desconocido"), Idioma("Desconocido"), Edad_recomendada(0), año(0),Prestado(0), Dias_prestamo(0){} int getP(){return Prestado;} }; int main() { Documento doc1("poke","anag","pepe",58,1995,1,9); cout << doc1.getP() << endl; system("PAUSE"); } Para hacer una pequeña prueba y haber si tiraba pero no... Solo me da este fallo en la linea que creo el Documento doc1: no matching function for call to 'Documento::Documento(cons char[5], const char[5]...)' y me pone dos notes que son: 1. candidates are Documento::Documento(const Documento&) 2. Documento::Documento() Gracias por la ayuda que me estais dando
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Te da error porque en el contructor te falta definir los tipos de datos de los parámetros: #include <cstdlib> #include <iostream> #include <stdio.h> #include <string.h> using namespace std; //Clases Definidas. class Documento { private: //Atributos privados de la clase documentos. string Titulo; string Genero; string Idioma; int Edad_recomendada; int ano; int Prestado; int Dias_prestamo; public: Documento(string, string, string, int, int, int, int): Titulo("Desconocido"), Genero("Desconocido"), Idioma("Desconocido"), Edad_recomendada(0), ano(0),Prestado(0), Dias_prestamo(0) { } int getP() { return Prestado; } }; int main(void) { Documento doc1("poke", "anag", "pepe", 58, 1995, 1, 9); cout << doc1.getP() << endl; }
|
|
|
En línea
|
|
|
|
kyon19
Desconectado
Mensajes: 6
|
Muchísimas gracias!! a veces estoy empanado... esto de la programación me deja tonto... jajaja
|
|
|
En línea
|
|
|
|
kyon19
Desconectado
Mensajes: 6
|
Ains... tengo otro problema... ahora al compilar me dice esto: base "Documento" with only non-default constructor in class without a constructor en las dos clases derivadas. En el constructor de las clases derivadas me da este otro error: no matching function for call to "Documento::Documento()" Adjunto la clase base y una de las derivadas...: #include <cstdlib> #include <iostream> #include <stdio.h> #include <string.h> using namespace std; //Clases Definidas. class Documento { protected: //Atributos privados de la clase documentos. string Titulo; string Genero; string Idioma; int Edad_recomendada; int año; bool Prestado; int Dias_prestamo; public: Documento (string, string, string, int, int, bool, int) : Titulo("Desconocido"), Genero("Desconocido"), Idioma("Desconocido"), Edad_recomendada(0), año(0),Prestado(false), Dias_prestamo(0){} string getT(){return Titulo;} }; //Clases Derivadas. class Libros : public Documento { private: //Atributos privados de la clase libros. string Editorial; string Autor; int Paginas; public: //Constructor de los valores por defecto. Libros (string, string, int) : Editorial("Desconocido"), Autor("Desconocido"), Paginas(0){} };
|
|
« Última modificación: 4 Febrero 2011, 09:13 am por kyon19 »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Primero coloca el código con la etiqueta GeShi.
|
|
|
En línea
|
|
|
|
kyon19
Desconectado
Mensajes: 6
|
Mmmm vale, perdon jaja
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Arrays con clases? [AYUDA]
Programación Visual Basic
|
EstoyBaneado
|
5
|
2,263
|
13 Septiembre 2005, 17:58 pm
por EstoyBaneado
|
|
|
Ayuda con diseno de una jerarquia de clases
Java
|
Sujeto
|
0
|
2,532
|
24 Enero 2009, 19:48 pm
por Sujeto
|
|
|
[AYUDA]Clases en structuras
Programación C/C++
|
anonimo12121
|
2
|
2,440
|
9 Mayo 2010, 00:19 am
por anonimo12121
|
|
|
Ayuda Urgente! Cola con Templates Clases
Programación C/C++
|
¡Micronet!
|
0
|
1,962
|
28 Octubre 2010, 04:34 am
por ¡Micronet!
|
|
|
Ayuda codigo con clases.
Programación C/C++
|
kaskull
|
1
|
2,835
|
30 Marzo 2014, 19:02 pm
por ivancea96
|
|