QT - Error segmentation fault c++ usando Herencia

 
Vista:
sin imagen de perfil

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.

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:

CapturaErrorCHerencia

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 96
Oro
Ha mantenido su posición en QT (en relación al último mes)
Gráfica de QT

Error segmentation fault c++ usando Herencia

Publicado por juanki (102 intervenciones) el 10/04/2018 21:22:26
Hola

He copiado y pegado tu código y no me dio ningún error. He usado GCC y linux.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error segmentation fault c++ usando Herencia

Publicado por Nerina (2 intervenciones) el 10/04/2018 21:50:23
Gracias por t respuesta Juanki.
Tiene que ser un problema del entorno de desarrollo entonces. Porque intento compilarlo desde el cmd con el mingw, y también me da error, pero un error diferente. Puede ser que en el IDE QT, que estoy usando , me falte alguna libreria/plugin o como sea que se llame, que me está generando todos estos errores????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar