Dev - C++ - ¿por qué me aparecen números diferentes a los asignados?

 
Vista:

¿por qué me aparecen números diferentes a los asignados?

Publicado por Estudiante (1 intervención) el 07/09/2020 22:22:43
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
//HOLA, SOY ESTUDIANTE Y APENAS ESTOY APRENDIENDO, ME LO DEJARON EN LA ESCUELA. ESTE CÓDIGO TIENE TRES CLASES, ALGUNOS DATOS SON PRIVADOS Y COMO RESULTADO DEBE ARROJARME UNA SUMA. PERO AL COMPILAR, ME APARECEN OTROS NÚMEROS QUE YO NO ASIGNÉ. TENGO IDEA DE CUAL PUEDE SER EL ERROR PERO NO PUEDO CORREGIRLO AÚN. ESPERO QUE ALGUIEN ME PUEDA ORIENTAR, MUCHAS GRACIAS.
 
#include<iostream>
using namespace std;
 
class A
{
	private:
		int a;
	public:
		int asigna_a(int);
		int obta ();
};
 
class B
{
	private:
		int b;
	public:
		int asigna_b(int);
		int obtb ();
};
 
class C : public  A, B
{
	private:
		int c;
 
	public:
		int suma(int, int);
		void ver ();
};
 
int A::asigna_a(int x)
{	a=x;	}
 
int A::obta()
{
	return a;
}
 
int B::asigna_b(int y)
{	b=y;}
 
int B::obtb()
{
	return b;
}
 
int C::suma(int,int)
{
	c=obta()+obtb();
}
 
void C::ver()
{
	cout<<"a: "<<obta()<<endl;
	cout<<"b: "<<obtb()<<endl;
	cout<<"Suma: "<<c<<endl;
}
 
int main ()
{
	C obj1;
	int x=5, y=2;
	obj1.suma(x, y);
	obj1.ver();
 
	return 0;
}
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
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

¿por qué me aparecen números diferentes a los asignados?

Publicado por Alfil (1444 intervenciones) el 07/09/2020 23:16:40
Te da ese resultado por que las variables a y b no están inicializadas, te faltan los constructores de todas las clases.

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
#include <iostream>
 
using namespace std;
 
class A
{
public:
    A(int);
    int setA(int);
    int getA();
 
private:
    int a;
};
 
class B
{
public:
    B(int);
    int setB(int);
    int getB();
 
private:
    int b;
};
 
class C: public A, public B
{
public:
    C();
    C(int, int);
    int suma();
    void imprimir();
 
private:
    int c;
};
 
A::A(int x)
: a(x)
{}
 
int A::setA(int x)
{ a = x; }
 
int A::getA()
{
    return a;
}
 
B::B(int x)
: b(x)
{}
 
int B::setB(int x)
{ b = x; }
 
int B::getB()
{
    return b;
}
 
C::C()
: A(5)
, B(2)
{}
 
C::C(int x, int y)
: A(x)
, B(y)
{}
 
int C::suma()
{
    c = getA() + getB();
}
 
void C::imprimir()
{
    cout << "\na: "<< getA() << endl;
    cout << "b: "<< getB() << endl;
    cout << "Suma: " << c << endl;
}
 
int main ()
{
    C obj1;
    obj1.suma();
    obj1.imprimir();
 
    C obj2(7, 3);
    obj2.suma();
    obj2.imprimir();
 
    return 0;
}
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