Utilice la clase arreglo para adicionar el método concatenar
Publicado por jose341 (1 intervención) el 30/08/2020 23:32:34
Hola tengo un pequeño ejercicio en c++ poo, donde debo crear un metodo que me permita concatenar dos arreglos. La explicación del ejercicio es:
"El método concatenar une dos arreglos para retornar un arreglo que contenga los datos de los dos"
Y hasta ahí lo entiendo, el problema es al momento de implementar, que me pierdo muchísimo.
Se me entregó el prototipo de la función y que es: "arreglo concatenar(const arreglo &) const;" y el ejemplo del llamado al método: "C = A.concatenar(B);"
Entonces, esto es lo que llevo del código:
main.cpp---------------------------------------------------------------------------------
arreglo.cpp-----------------------------------------------------------------------------------
arreglo.h-----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------
Entonces, como pueden notar intenté implementar el método en el archivo arreglo.cpp y mi idea principal era hacer algo del estilo:
a=b+c
a=concatenar
Sí, algo muy simple pero eso fue lo que entendí del enunciado, entonces evidentemente no me corre, porque algo falta allí, pero no sé qué es....
"El método concatenar une dos arreglos para retornar un arreglo que contenga los datos de los dos"
Y hasta ahí lo entiendo, el problema es al momento de implementar, que me pierdo muchísimo.
Se me entregó el prototipo de la función y que es: "arreglo concatenar(const arreglo &) const;" y el ejemplo del llamado al método: "C = A.concatenar(B);"
Entonces, esto es lo que llevo del código:
main.cpp---------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "arreglo.h"
int main()
{
arreglo A(5), B, C;
cout << "\n** Primer arreglo ***\n";
cin >> A;
cout << "\n** Segundo arreglo ***\n";
cin >> B;
C = A;
cout << "\n** Tercer arreglo ***\n";
cout << C;
if (A == C)
cout << "\n\nA es igual a C";
cout << "\n\n";
return 0;
}
arreglo.cpp-----------------------------------------------------------------------------------
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
#include "arreglo.h"
arreglo arreglo::concatenar(const arreglo &a) const
{
const t1,t2;
t1=a
}
arreglo::arreglo(int ta)
{
tam = (ta > 0 ? ta : 4);
ptr = new int[tam];
for(int i = 0; i < tam; i++)
ptr[i] = 0;
}
arreglo::arreglo(const arreglo &copia)
{
tam = copia.tam;
ptr = new int[tam];
for(int i = 0; i < tam; i++)
ptr[i] = copia.ptr[i];
}
arreglo::~arreglo()
{
delete []ptr;
}
int arreglo::tamanio() const
{
return tam;
}
const arreglo &arreglo::operator= (const arreglo &derecha)
{
if(&derecha != this)
{
if(tam != derecha.tam)
{
delete []ptr;
tam = derecha.tam;
ptr = new int[tam];
}
for(int i = 0; i < tam; i++)
ptr[i] = derecha.ptr[i];
}
return *this;
}
int arreglo::operator== (const arreglo &derecha) const
{
if(tam != derecha.tam)
return 0;
for(int i = 0; i < tam; i++)
if(ptr[i] != derecha.ptr[i])
return 0;
return 1;
}
istream &operator>>(istream &entrada, arreglo &a)
{
for(int i = 0; i < a.tam; i++)
{
cout << "[" << i+1 << "]: ";
entrada >> a.ptr[i];
}
return entrada;
}
ostream &operator<<(ostream &salida, const arreglo &a)
{
int i;
for(i = 0; i < a.tam; i++)
{
salida << ", " << a.ptr[i];
if((i+1) % 4 == 0) salida << endl;
}
if((i+1) % 4 == 0) salida << endl;
return salida;
}
arreglo.h-----------------------------------------------------------------------------------------
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
#ifndef ARREGLO_H
#define ARREGLO_H
#include <iostream>
using namespace std;
class arreglo
{
friend ostream &operator << (ostream &, const arreglo &);
friend istream &operator >> (istream &, arreglo &);
public:
arreglo(int = 4);
arreglo(const arreglo &);
~arreglo();
int tamanio() const;
const arreglo &operator= (const arreglo &);
int operator== (const arreglo &) const;
arreglo concatenar(const arreglo &) const;
int operator!= (const arreglo &derecha) const
{
return !(*this == derecha);
}
private:
int tam;
int *ptr;
};
#endif // ARREGLO_H
---------------------------------------------------------------------------------
Entonces, como pueden notar intenté implementar el método en el archivo arreglo.cpp y mi idea principal era hacer algo del estilo:
a=b+c
a=concatenar
Sí, algo muy simple pero eso fue lo que entendí del enunciado, entonces evidentemente no me corre, porque algo falta allí, pero no sé qué es....
Valora esta pregunta


0