Sobrecarga de operadores y cadenas
JoramadoPráctica o problema27 de Abril de 2017
620 Palabras (3 Páginas)138 Visitas
Basados en sobrecarga de operadores, desarrollen los siguientes programas, considerando las operaciones de suma, resta, multiplicación, división, incremento, decremento, relacionales. Utilice memoria dinámica para los ejercicios 2 y 3.
1. Números complejos.
2. Números binarios. El usuario debe indicar el número de bits a considerar. Todos los valores se van a considerar como enteros.
3. Conjuntos. Solamente considere unión e intersección.
El código ejemplo de sobrecarga de operadores es el siguiente.
#include
#include
using namespace std;
//class Complejo
//{
//public:
// double r, i;
//};
//
//void main()
//{
// Complejo a, b, s;
// a.r = 2.2; a.i = 1;
// b.r = -1; b.i = 3;
// s.r = a.r + b.r;
// s.i = a.i + b.i;
// cout << "s = " << s.r << " + " << s.i << "i\n";
// _getch();
//}
//class Complejo
//{
//public:
// double r, i;
//};
//
///* Definición del operador + para complejos */
//Complejo operator +(Complejo a, Complejo b) {
// Complejo temp = { a.r + b.r, a.i + b.i };
// return temp;
//}
//
//void main()
//{
// Complejo a = { 2.2, 1 };
// Complejo b = { -1, 3 };
// Complejo s;
//
// s = a + b;
// cout << "s = " << s.r << " + " << s.i << "i\n";
// _getch();
//}
//class Complejo
//{
//public:
// double r, i;
//};
//
///* Definición del operador + para complejos */
//Complejo operator *(Complejo a, Complejo b) {
// Complejo temp = { a.r * b.r - a.i * b.i, a.r * b.i + a.i * b.r };
// return temp;
//}
//
//void main()
//{
// Complejo a = { 2.2, 1 };
// Complejo b = { -1, 3 };
// Complejo s;
//
// s = a * b;
// cout << "s = " << s.r << " + " << s.i << "i\n";
// _getch();
//}
struct Complejo {
float r, i;
};
/* Prototipo del operador ++ prefijo para complejos */
Complejo operator ++(Complejo &c);
// Prototipo para imprimir el valor complejo.
void printf(Complejo);
int main() {
Complejo a = { 10,32 };
Complejo b = { 21,12 };
cout << "++a = ";
printf(a++);
cout << "++b = ";
printf(b++);
_getch();
return 0;
}
/* Definición del operador ++ prefijo para complejos */
Complejo operator ++(Complejo &c) {
c.r++; c.i++;
return c;
}
void printf(Complejo c) {
cout << c.r << " + " << c.i << "i" << endl;
}
//struct Complejo {
// float r, i;
//};
//
///* Prototipo del operador ++ sufijo para complejos */
//Complejo operator ++(Complejo &, int);
//// Prototipo para imprimir el valor complejo.
//void printf(Complejo);
//
//int main() {
// Complejo a = { 10,32 };
// Complejo b = { 21,12 };
//
// cout << "a++ = ";
// printf(a++);
// cout << "b++ = ";
// printf(b++);
// _getch();
// return 0;
//}
//
///* Definición del operador ++ prefijo para complejos */
//Complejo operator ++(Complejo &c, int) {
// c.r++; c.i++;
// return c;
...