Sobrecarga de operadores y cadenas
Enviado por Joramado • 27 de Abril de 2017 • Práctica o problema • 620 Palabras (3 Páginas) • 129 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;
...