Buenas, chavales. Feliz Navidad y aniversario de Newton.
Estaba yo haciendo prácticas de C++ (le voy a dar una oportunidad) y no llego a entender del todo porqué saca unos resultados tan raros.
El código:
El resultado:
Es decir: porqué 'c' no y 'd' sí.
Estaba yo haciendo prácticas de C++ (le voy a dar una oportunidad) y no llego a entender del todo porqué saca unos resultados tan raros.
El código:
Código (cpp) [Seleccionar]
#include <iostream>
class vector {
private:
int *n;
int tamano;
public:
vector(int tamano = 5);
~vector();
void visualizar();
void llenar();
vector operator + (vector &);
int& operator[] (int i) { return n[i]; };
};
vector::vector(int t):tamano(t) {
n = new int[tamano];
llenar();
}
vector::~vector() {
delete[] n;
}
vector vector::operator + (vector &v) {
vector resultado(tamano);
for(int i=0; i<tamano; ++i) {
resultado[i] = n[i] + v[i];
}
return resultado;
}
void vector::visualizar() {
for(int i=0; i<tamano; ++i) {
std::cout << n[i] << '\t';
}
std::cout << std::endl;
}
void vector::llenar() {
for(int i=0; i<tamano; ++i) {
n[i] = rand() % 10;
}
}
int main() {
vector a, b;
a.visualizar();
b.visualizar();
vector c;
c = a + b;
c.visualizar();
vector d = a + b;
d.visualizar();
return 0;
}
El resultado:
Código [Seleccionar]
1 7 4 0 9
4 8 8 2 4
1577824 0 1573200 0 13
5 15 12 2 13
Es decir: porqué 'c' no y 'd' sí.