![sin imagen de perfil sin imagen de perfil](/img/anonymouse.png)
Error segmentation fault c++ usando Herencia
Publicado por Nerina (2 intervenciones) el 10/04/2018 15:01:57
Hola ! estoy aprendiendo a programar en c++ , y siguiendo algunos ejemplos de varios libros, no puedo ejecutar casi ningun programa, en la mayoría me da errores de segmentación.
Dejo un ejemplo de uno de los programas que me da error y la imagen del error mas abajo. Si alguien me puede ayudar se los voy a agradecer muchisimo.
ERROR:
![CapturaErrorCHerencia](/usr/329000/329570/5accb592787c8-CapturaErrorCHerencia.JPG)
Saludos!
Dejo un ejemplo de uno de los programas que me da error y la imagen del error mas abajo. Si alguien me puede ayudar se los voy a agradecer muchisimo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Programa que demuestra la herencia.
// INCLUDES DE SISTEMA
#include <iostream>
// Definición de una clase base para vehiculos
class VehiculoRodante
{
private :
/* Generalmente en 'private' se sitúan los datos miembros */
int mRuedas=0;
int mPasajeros=0;
public :
void set_ruedas (int num)
{
this->mRuedas = num;
}
int get_ruedas ()
{
return this->mRuedas ;
}
void set_pasajeros (int num)
{
this->mPasajeros = num;
}
int get_pasajeros (void)
{
return this->mPasajeros ;
}
};
// Definición de una clase 'Camion' derivada de la clase base 'VehiculoRodante'.
class Camion : public VehiculoRodante
{
public :
void set_carga (int size)
{
this->mCarga = size;
}
int get_carga (void)
{
return this->mCarga ;
}
void Mostrar (void);
private :
int mCarga ;
};
void Camion ::Mostrar (void)
{
std::cout << "ruedas: " << this->get_ruedas() << "\n";
std::cout << "pasajeros: " << this->get_pasajeros () << std::endl;
std::cout << "Capacidad de carga en pies cúbicos: " << this->get_carga () <<
std::endl;
}
enum tipo {deportivo , berlina , turismo };
class Automovil : public VehiculoRodante
{
public :
void set_tipo (tipo t)
{
this->mTipoDeAutomovil = t;
}
enum tipo get_tipo (void)
{
return this->mTipoDeAutomovil ;
};
void Mostrar (void);
private :
enum tipo mTipoDeAutomovil ;
};
void Automovil ::Mostrar (void)
{
std::cout << "ruedas: " << this->get_ruedas() << std::endl;
std::cout << "pasajeros: " << this->get_pasajeros () << std::endl;
std::cout << "tipo: " ;
switch (this->get_tipo ())
{
case deportivo :
std::cout << "deportivo" ;
break ;
case berlina :
std::cout << "berlina" ;
break ;
case turismo :
std::cout << "turismo" ;
}
std::cout << std::endl;
}
int main(void)
{
Camion Camion1 ;
Camion Camion2 ;
Automovil Automovil1 ;
Camion1.set_ruedas(18);
Camion1.set_pasajeros(2);
Camion1.set_carga(3200);
Camion2.set_ruedas(6);
Camion2.set_pasajeros(3);
Camion2.set_carga(1200);
Camion1.Mostrar();
std::cout << std::endl;
Camion2 .Mostrar();
std::cout << std::endl;
Automovil1.set_ruedas(4);
Automovil1.set_pasajeros(6);
Automovil1.set_tipo(tipo::deportivo );
Automovil1.Mostrar();
return 0;
}
ERROR:
Saludos!
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0