Ir al contenido principal

Sobrecarga de operadores en C++

Cuando se trata de exprimir al máximo el potencial de C++, la sobrecarga de operadores emerge como una herramienta indispensable para la implementación de clases y estructuras personalizadas. Esta característica permite a los programadores adaptar el comportamiento de los operadores estándar del lenguaje a tipos de datos definidos por el usuario, otorgando un control sin precedentes sobre la sintaxis y la semántica del código.

En este post les muestro como hacer operaciones en objetos creados por nosotros. El ejercicio trata de hacer operaciones básicas con matrices tales como:

Matrix m1, m2, m3; // Matrix es una clase 
m1 = m2;
m3 = m1 + m2;
m3 = m2 - m1
m1 += m3

Como se darán cuenta estos operadores son usados como "pan del día" para nuestros cálculos pero con tipos de datos primitivos, ya sean int, float, doble, etc. 

La objetos que se operaran serán Matrices cuadradas de 4x4. Adicionalmente hice uso de templates (plantillas) y mostrarles algunas cosas extra ;)

Espero este código sea de su agrado y les sirva para poder entender mejor la sobrecarga de operadores.

Código:

Comentarios

Entradas populares de este blog

Obtener numeros aleatorios en C++ (rand, srand)

Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso. Así que lo primero que tenemos que hacer es incluir la librería: #include<stdlib.h> Necesitamos esta libreria para usar la función time() #include<time.h> Luego inicializar los números aleatorios incluyendo esto: srand(time(NULL)); Luego guardar el número aleatorio en alguna parte: num = rand(); Para ajustar el rango de número aleatorios podemos hacer varias cosas. - Número aleatorios entre 0 y 50:   num=rand()%51; - Número aleatorios entre 1 y 100:   num=1+rand()%(101-1); - Número aleatorios entre 250 y 420:   num=250+rand()%(421-250); De forma general es: variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ; Así que un programa que muestre 10 números aleatorios entre 1 y 10 quedaría así:

Árboles Binarios de Búsqueda en C++ | Recorrido por niveles (Amplitud)

Hola a todos en esta ocasión compartiré sobre este tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostraré la implementación en lenguaje de programación C++. Primero una breve introducción a árboles. ¿Qué es un árbol? Un árbol es una estructura de datos no lineal puesto que cada elemento apunta a uno o varios elementos del mismo tipo; esto es dado un elemento, no hay un único camino a seguir. El elemento que apunta a otro es llamado padre, mientras que el elemento apuntado se conoce como hijo. Todos los elementos tienen un padre a excepción de la raíz. Puede decirse que un árbol esta formado por subárboles resaltando así su naturaleza recursiva . ¿Qué es un árbol binario? Un árbol binario es aquel es el que cada elemento apunta como máximo a otros 2 elementos, comúnmente llamados hijo izquierdo y hijo derecho. ¿Qué es un árbol binario de búsqueda? Un árbol binario de buque da o ABB, es un árbol bi

Listas Enlazadas Simples Lineales en C++

En esta ocasión les compartire este programa que hize sobre listas  enlazadas simples que hace los siguiente: Inserta al inicio, final, en una posicion a especificar(antes o después), reporta la lista, busca elemento, elimina elemento, elimina elementos repetidos(a especificar). Definición: En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior. El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento. Implementación: Sigueme en  facebook y dejame un comentario, agradecer no cuesta nada :D!