Agregue marcas de tiempo dadas sobrecargando + operador en C++ Time Class

  • En C++, podemos hacer que los operadores funcionen para clases definidas por el usuario. Esto significa que C++ tiene la capacidad de proporcionar a los operadores un significado especial para un tipo de datos, esta capacidad se conoce como sobrecarga de operadores .
  • En este artículo, sobrecargaremos un operador ‘+’ en la clase Time para que podamos concatenar dos marcas de tiempo simplemente usando +.

Ejemplo: 

Entrada: T1 = 5:50:30, T2 = 7:20:34 
Salida: 13:11:4 
 

Enfoque: Para lograr la sobrecarga del operador +, se realizan los siguientes pasos/funciones:

Se define Class Time en el cual existen 3 variables para almacenar el valor de horas, minutos y segundos respectivamente.

int HR, MIN, SEC;
where HR is for hours, 
      MIN is for minutes, and 
      SEC is for seconds
  • función setTime() para establecer valores de HR, MIN y SEC.
void setTime(int x, int y, int z)
{
    x = HR;
    y = MIN;
    z = SEC;
}
  • función showTime() para mostrar la hora en un formato específico (HH:MM:SS).
void showTime()
{
    cout << HR << ":" << MIN << ":" << SEC;
}
  • función normalize() para convertir el tiempo resultante en forma estándar.

Sobrecarga del operador + para sumar el tiempo T1 y T2 mediante sobrecarga del operador.

A continuación se muestra el programa C++ que implementa la sobrecarga + para agregar dos marcas de tiempo:

C++

// C++ program to implement + operator
// overloading to add two timestamps
 
#include <iostream>
using namespace std;
 
// Time class template
class Time {
private:
    int HR, MIN, SEC;
 
    // Defining functions
public:
    // Functions to set the time
    // in the Time class template
    void setTime(int x, int y, int z)
    {
        HR = x;
        MIN = y;
        SEC = z;
    }
 
    // Function to print the time
    // in HH:MM:SS format
    void showTime()
    {
        cout << endl
             << HR << ":" << MIN << ":" << SEC;
    }
 
    // Function to normalize the resultant
    // time in standard form
    void normalize()
    {
        MIN = MIN + SEC / 60;
        SEC = SEC % 60;
        HR = HR + MIN / 60;
        MIN = MIN % 60;
    }
 
    // + Operator overloading
    // to add the time t1 and t2
    Time operator+(Time t)
    {
        Time temp;
        temp.SEC = SEC + t.SEC;
        temp.MIN = MIN + t.MIN;
        temp.HR = HR + t.HR;
        temp.normalize();
        return (temp);
    }
};
 
// Driver code
int main()
{
    Time t1, t2, t3;
    t1.setTime(5, 50, 30);
    t2.setTime(7, 20, 34);
 
    // Operator overloading
    t3 = t1 + t2;
 
    // Printing results
    t1.showTime();
    t2.showTime();
    t3.showTime();
 
    return 0;
}
Producción: 

5:50:30
7:20:34
13:11:4

 

Publicación traducida automáticamente

Artículo escrito por simrankumar0799 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *