#include <iostream.h>
class Caja {
double longitud;
double anchura, altura;
public:
void set(int l, int w, int h) {longitud = l; anchura = w; altura = h;}
double volumen(void) {return longitud * anchura * altura;}
Caja operator+(Caja a);
};
Caja operator+(Caja a)
{
Caja temp;
temp.longitud = longitud + a.longitud;
temp.anchura = anchura + a.anchura;
temp.altura = altura + a.altura;
return temp;
}
main()
{
Caja pequeña, mediana, grande;
Caja temp;
pequeña.set(2, 4, 5);
mediana.set(5, 6, 8);
grande.set(8, 10, 12);
cout << "El volumen es " << pequeña.volumen() << "\n";
cout << "El volumen es " << mediana.volumen() << "\n";
cout << "El volumen es " << grande.volumen() << "\n";
temp = pequeña + mediana;
cout << "El nuevo volumen es " << temp.volumen() << "\n";
}
El resultado de la ejecución será:
El volumen es 40. El volumen es 240. El volumen es 960. El volumen es 840.
Observamos que :
#include <iostream.h>
class Caja {
double longitud;
double anchura, altura;
public:
void set(int l, int w, int h) {longitud = l; anchura = w; altura = h;}
int volumen(void) {return longitud * anchura * altura;}
friend Caja operator+(Caja a, Caja b); // Add two Cajas
friend Caja operator+(int a, Caja b); // Add a constant to a Caja
friend Caja operator*(int a, Caja b); // Multiply a Caja by a constant
};
Caja operator+(Caja a, Caja b)
{
Caja temp;
temp.longitud = a.longitud + b.longitud;
temp.anchura = a.anchura + b.anchura;
temp.altura = a.altura + b.altura;
return temp;
}
Caja operator+(int a, Caja b) // Add a constant to a Caja
{
Caja temp;
temp.longitud = a + b.longitud;
temp.anchura = a + b.anchura;
temp.altura = a + b.altura;
return temp;
}
Caja operator*(int a, Caja b) // Multiply a Caja by a constant
{
Caja temp;
temp.longitud = a * b.longitud;
temp.anchura = a * b.anchura;
temp.altura = a * b.altura;
return temp;
}
main()
{
Caja pequeña, mediana, grande;
Caja temp;
pequeña.set(2, 4, 5);
mediana.set(5, 6, 8);
grande.set(8, 10, 12);
cout << "El volumen es " << pequeña.volumen() << "\n";
cout << "El volumen es " << mediana.volumen() << "\n";
cout << "El volumen es " << grande.volumen() << "\n";
temp = pequeña + mediana;
cout << "El nuevo volumen es " << temp.volumen() << "\n";
temp = 10 + pequeña;
cout << "El nuevo volumen es " << temp.volumen() << "\n";
temp = 4 * grande;
cout << "El nuevo volumen es " << temp.volumen() << "\n";
}
El resultado de la ejecución es:
El volumen es 40 El volumen es 240. El volumen es 960. El nuevo volumen es 840. El nuevo volumen es 2520. El nuevo volumen es 61440.