Hi there fellow programmers, I have been trying to debug for days now the following program (code below). I am relatively new to classes on C++, the function "comparar" apparently is generating a bunch of errors that I don't understand because not enough information is given by the compiler. The errors are clearly syntactical but have been trying to fix the function "comparar" and no success whatsoever. Any help in why my program is generating such errors will be greatly appreciated, so I can keep debugging it.
My code:
#include <iostream>
#include <fstream>
using namespace std;
ofstream archivo_out("salida.txt");
class tiempo{
public:
int hora, minuto, segundos;
void entrada();
void set(int new_hora, int new_minuto, int new_segundos);
void comparar (int hora, int minuto, int segundos);
private:
void verificar();
};
int main()
{
tiempo Digital, Digital2;
Digital.set(0, 0, 0);
Digital2.set(0, 0, 0);
Digital.entrada();
Digital2.entrada();
Digital.comparar(int hora, int minuto, int segundos);
Digital2.comparar(int hora, int minuto, int segundos);
return 0;
}
void tiempo::comparar (int Digital.hora, int Digital.minuto, int Digital.segundos, int Digital2.hora, int Digital2.minuto, int Digital2.segundos) {
if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto == int Digital2.minuto) && (int Digital.segundos == int Digital2.segundos))
{
cout << "Ambos horarios son iguales" << endl;
}
else if ((int Digital.hora > int Digital2.hora))
{
cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos;
}
else if ((int Digital2.hora > int Digital.hora))
{
cout << Digital2.hora << Digital2.minuto << Digital2.segundos << "es mayor que:" << Digital.hora << Digital.minuto << Digital.segundos;
}
else if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto > int Digital2.minuto))
{
cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos;
}
else if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto < int Digital2.minuto))
{
cout << Digital2.hora << Digital2.minuto << Digital2.segundos << "es mayor que:" << Digital.hora << Digital.minuto << Digital.segundos;
}
else if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto == int Digital2.minuto) && (Digital.segundos > Digital2.segundos))
{
cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos;
}
else
cout << Digital2.hora << Digital2.minuto << Digital2.segundos << "es mayor que:" << Digital.hora << Digital.minuto << Digital.segundos;
}
void tiempo::entrada() {
cout << "Introduzca la hora seguida por minutos, seguida por segundos: \n";
archivo_out << "Introduzca la hora seguida por minutos, seguida por segundos: \n";
cin >> hora >> minuto >> segundos;
verificar();
}
void tiempo::set(int new_hora, int new_minuto, int new_segundos){
hora = new_hora;
minuto = new_minuto;
segundos = new_segundos;
verificar();
}
void tiempo::verificar() {
if ((hora > 23) || (minuto > 59) || (segundos > 59))
{
cout << "Valor illegal, terminando programa.\n";
archivo_out << "Valor inlegal, terminando programa.\n";
exit(1);
}
}
Errors: Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:25:26: error: expected '(' for function-style cast or type construction Digital.comparar(int hora, int minuto, int segundos); //Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:25:36: error: expected '(' for function-style cast or type construction Digital.comparar(int hora, int minuto, int segundos); //Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:25:48: error: expected '(' for function-style cast or type construction Digital.comparar(int hora, int minuto, int segundos); //Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:26:27: error: expected '(' for function-style cast or type construction Digital2.comparar(int hora, int minuto, int segundos); // Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:26:37: error: expected '(' for function-style cast or type construction Digital2.comparar(int hora, int minuto, int segundos); // Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:26:49: error: expected '(' for function-style cast or type construction Digital2.comparar(int hora, int minuto, int segundos); // Problema con esto, no entiendo error ~~~ ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:30:35: error: expected ')' void tiempo::comparar (int Digital.hora, int Digital.minuto, int Digital.segundos, int Digital2.hora, int Digital2.minuto, int Digital2.segundos) { ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:30:23: note: to match this '(' void tiempo::comparar (int Digital.hora, int Digital.minuto, int Digital.segundos, int Digital2.hora, int Digital2.minuto, int Digital2.segundos) { ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:30:14: error: out-of-line definition of 'comparar' does not match any declaration in 'tiempo' void tiempo::comparar (int Digital.hora, int Digital.minuto, int Digital.segundos, int Digital2.hora, int Digital2.minuto, int Digital2.segundos) { ^~~~~~~~ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:31:12: error: expected ')' if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto == int Digital2.minuto) && (int Digital.segundos == int Digital2.segundos)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:31:7: note: to match this '(' if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto == int Digital2.minuto) && (int Digital.segundos == int Digital2.segundos)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:31:50: error: expected identifier if ((int Digital.hora == int Digital2.hora) && (int Digital.minuto == int Digital2.minuto) && (int Digital.segundos == int Digital2.segundos)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:35:17: error: expected ')' else if ((int Digital.hora > int Digital2.hora)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:35:12: note: to match this '(' else if ((int Digital.hora > int Digital2.hora)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:35:50: error: expected expression else if ((int Digital.hora > int Digital2.hora)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:20: error: member reference base type 'int' is not a structure or union cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ~~~~~~~^~~~~ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:36: error: member reference base type 'int' is not a structure or union cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ~~~~~~~^~~~~~~ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:54: error: member reference base type 'int' is not a structure or union cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ~~~~~~~^~~~~~~~~ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:86: error: use of undeclared identifier 'Digital2' cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:103: error: use of undeclared identifier 'Digital2' cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:37:122: error: use of undeclared identifier 'Digital2' cout << Digital.hora << Digital.minuto << Digital.segundos << "es mayor que:" << Digital2.hora << Digital2.minuto << Digital2.segundos; ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:39:17: error: expected ')' else if ((int Digital2.hora > int Digital.hora)) ^ /Users/carlosmalave/Desktop/COMP3110/asig4/reloj.cpp:39:12: note: to match this '(' else if ((int Digital2.hora > int Digital.hora))