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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado]Nuevo problemilla en herencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Nuevo problemilla en herencia  (Leído 1,321 veces)
cazagavilan

Desconectado Desconectado

Mensajes: 82


Ver Perfil
[Solucionado]Nuevo problemilla en herencia
« en: 24 Abril 2012, 05:31 am »

Hola!

Ya tengo el codigo casi acabado... solo me da un error y es que no me almacena el nombre completo del propietario, solo la primera letra.

Código
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. //Declaracion clase VEHICULO
  5. class vehiculo
  6. {
  7. protected:
  8. char *cad;
  9. int litros;
  10. int kphMas;
  11. int kphMenos;
  12. int veloActual;
  13. int capaDepo;
  14. int año;
  15. int capDepo;
  16. int liDepo;
  17. public:
  18. vehiculo(int veloInicial, int liInicial, int capDepoInicial, int anioInicial, const char *c);
  19. ~vehiculo();
  20. void imprimir();
  21. void llenarDepo();
  22. void acelerar(int kphMas);
  23. void frenar(int kphMenos);
  24. char *leer(char *c);
  25. };
  26.  
  27. //Declaracion derivada MOTO
  28. class moto : public vehiculo
  29. {
  30. protected:
  31. int cilindrada;
  32. int cilinInicial;
  33. char *tipo;
  34. public:
  35. moto(int veloInicial,int liInicial, int capDepoInicial, int anioInicial,  int cilinInicial, const char* c, const char *c1);
  36. ~moto();
  37. char* leer1(char* c1);
  38. void imprimir();
  39. };
  40.  
  41. //Declaracion derivada COCHE
  42. class coche : public vehiculo
  43. {
  44. protected:
  45. int asientos;
  46. int asientosInicial;
  47. char *marca;
  48. public:
  49. coche(int veloInicial,int liInicial, int capDepoInicial, int anioInicial,  int cilinInicial, const char* c, const char *c1);
  50. ~coche();
  51. char * leer1(char* c1);
  52. void imprimir();
  53. };
  54.  
  55.  
  56. //Constructor VEHICULO
  57. vehiculo::vehiculo(int veloInicial, int liInicial, int capDepoInicial, int anioInicial, const char *c)
  58. {
  59. veloActual = veloInicial;
  60. liDepo = liInicial;
  61. capDepo = capDepoInicial;
  62. año = anioInicial;
  63. cad = new char[strlen(c)+1];
  64. strcpy(cad, c);
  65.  
  66. }
  67.  
  68. //Destructor VEHICULO
  69. vehiculo::~vehiculo()
  70. {
  71. delete [] cad;
  72. }
  73.  
  74. //Metodo leer VEHICULO
  75. char *vehiculo::leer(char* c)
  76. {
  77. strcpy(c, cad);
  78. return c;
  79. }
  80.  
  81. // Metodo llenar deposito  VEHICULO
  82. void vehiculo::llenarDepo()
  83. {
  84. cout << "Estas llenando el deposito..." << endl;
  85. for(; liDepo < capDepo; liDepo++)
  86. {
  87. }
  88. cout << "El deposito esta lleno: " << liDepo<< " Litros."<< endl << endl;
  89. }
  90.  
  91. // Metodo imprimir VEHICULO
  92. void vehiculo::imprimir()
  93. {
  94. cout << "La velocidad actual es: "<< veloActual << endl;
  95. cout << "El año del coche es: " << año << endl;
  96. cout << "En el deposito hay: " << liDepo << endl;
  97. cout << "El nombre del propietario es: " << cad <<endl << endl;
  98. }
  99.  
  100. // Metodo acelerar VEHICULO
  101. void vehiculo::acelerar(int kphMas)
  102. {
  103. if(liDepo - kphMas / 10 > 0)
  104. {
  105. cout << "Estas acelerando!" << endl;
  106.    veloActual = veloActual + kphMas;
  107.    liDepo = liDepo - kphMas / 10;
  108.    cout << "Su velocidad actual es: " << veloActual << endl;
  109.    cout << "Su deposito actual es: " << liDepo << endl << endl;
  110. }
  111. else
  112. {
  113. cout << "El deposito esta vacio!" << endl << endl;
  114. veloActual = 0;
  115. }
  116. }
  117.  
  118. // Metodo frenar VEHICULO
  119. void vehiculo::frenar(int kphMenos)
  120. {
  121. if( veloActual - kphMenos > 0)
  122. {
  123. cout << "Estas frenando!" << endl;
  124. veloActual = veloActual - kphMenos;
  125. cout << "Su velocidad actual es: " << veloActual << endl << endl;
  126. }
  127. else
  128. {
  129. veloActual = 0;
  130. cout << "Ya estas parado!" << endl << endl;
  131. }
  132. }
  133.  
  134. // Constructor MOTO
  135. moto::moto(int veloInicial,int liInicial, int capDepoInicial, int anioInicial,  int cilinInicial,const char* c,  const char *c1):
  136. vehiculo( veloInicial,  liInicial,  capDepoInicial, anioInicial, c)
  137. {
  138. cout << "Ha salido la moto del taller!" << endl << endl;
  139. veloActual = veloInicial;
  140. liDepo = liInicial;
  141. capDepo = capDepoInicial;
  142. año = anioInicial;
  143. cilindrada = cilinInicial;
  144. cad = new char[strlen(c)+1];
  145. strcpy(cad, c);
  146. tipo = new char[strlen(c1)+1];
  147. strcpy(tipo, c1);
  148. }
  149.  
  150. // Destructor Moto
  151. moto::~moto()
  152. {
  153. delete [] tipo;
  154. }
  155.  
  156. // Metodo leer MOTO
  157. char *moto::leer1(char* c1)
  158. {
  159. strcpy(c1, tipo);
  160. return c1;
  161. }
  162.  
  163. // Metodo imprimir MOTO
  164. void moto::imprimir()
  165. {
  166. cout << "La velocidad actual es: "<< veloActual << endl;
  167. cout << "El año del Moto es: " << año << endl;
  168. cout << "En el deposito hay: " << liDepo << endl;
  169. cout << "El nombre del propietario es: " << cad <<endl;
  170. cout << "La cilindrada de la moto es: " << cilindrada  <<endl;
  171. cout << "El tipo de la moto es: " << tipo << endl << endl;
  172. }
  173.  
  174. //Constructor COCHE
  175. coche::coche(int veloInicial,int liInicial, int capDepoInicial, int anioInicial,  int asientosInicial,const char* c,  const char *c1):
  176. vehiculo( veloInicial,  liInicial,  capDepoInicial, anioInicial, c)
  177. {
  178. cout << "Ha salido el coche del Parking!" << endl << endl;
  179. veloActual = veloInicial;
  180. liDepo = liInicial;
  181. capDepo = capDepoInicial;
  182. año = anioInicial;
  183. asientos = asientosInicial;
  184. cad = new char[strlen(c)+1];
  185. strcpy(cad, c);
  186. marca = new char[strlen(c1)+1];
  187. strcpy(marca, c1);
  188. }
  189.  
  190. // Destructor COCHE
  191. coche::~coche()
  192. {
  193. delete [] marca;
  194. }
  195.  
  196. // Metodo leer COCHE
  197. char *coche::leer1(char* c1)
  198. {
  199. strcpy(c1, marca);
  200. return c1;
  201. }
  202.  
  203. // Metodo imprimir COCHE
  204. void coche::imprimir()
  205. {
  206. cout << "La velocidad actual es: "<< veloActual << endl;
  207. cout << "El año del Moto es: " << año << endl;
  208. cout << "En el deposito hay: " << liDepo << endl;
  209. cout << "El nombre del propietario es: " << cad <<endl;
  210. cout << "El coche tiene: " << asientos << " asientos"  <<endl;
  211. cout << "La marca del coche es: " << marca << endl << endl;
  212. }
  213.  
  214. int main()
  215. {
  216. coche ferrari(0, 90, 90, 2012, 2, "Jonathan Gavilan Mora", "Ferrari");
  217. ferrari.acelerar(60);
  218. ferrari.acelerar(60);
  219. ferrari.acelerar(100);
  220. ferrari.acelerar(60);
  221. ferrari.acelerar(40);
  222. ferrari.frenar(100);
  223. ferrari.frenar(100);
  224. ferrari.frenar(120);
  225. ferrari.llenarDepo();
  226. cout << "Datos actuales de Ferrari: " << endl;
  227. ferrari.imprimir();
  228. moto honda(0, 50, 50, 2010, 1000,  "Jonathan Gavilan Mora", "Carretera");
  229. honda.acelerar(100);
  230. honda.acelerar(150);
  231. honda.acelerar(100);
  232. honda.frenar(200);
  233. honda.acelerar(100);
  234. honda.acelerar(100);
  235. honda.llenarDepo();
  236. cout << "Datos atuales de Honda: " << endl;
  237. honda.imprimir();
  238.  
  239. system("pause");
  240. return 0;
  241. }

Muchas gracias!


Edit: El problema estaba en la funcion imprimir() de coche y moto, estaban asi "*cad" y era asi "cad".


« Última modificación: 24 Abril 2012, 05:57 am por cazagavilan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemilla con text box (solucionado)
Programación Visual Basic
pedraosone 0 1,147 Último mensaje 29 Marzo 2008, 19:34 pm
por pedraosone
[SOLUCIONADO] Problemilla con WebBrowser
Programación Visual Basic
aaronduran2 2 2,771 Último mensaje 12 Mayo 2009, 23:46 pm
por aaronduran2
Problemilla Con Firefox. [SOLUCIONADO]
Software
win-32 4 3,380 Último mensaje 11 Febrero 2011, 04:50 am
por win-32
problemilla con $_GET [solucionado] « 1 2 »
PHP
soru13 10 4,510 Último mensaje 4 Marzo 2011, 01:33 am
por .mokk.
(SOLUCIONADO) [ Batch ] Problemilla con variable Set /a...
Scripting
SuperDraco 9 6,461 Último mensaje 20 Marzo 2011, 11:40 am
por SuperDraco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines