Meu código é o seguinte :
/* * File: main.cpp * Author: Leonardo * * Created on 29 de Setembro de 2009, 23:05 */ #include <stdlib.h> #include <iostream.h> using namespace std; /* * */ class Horario{ //declaração das variaveis privadas private: int dia,hora,minuto,segundo; //deixa o tempo da maneira correta void arruma_tempo(); //declaração das variaveis publicas public: //construtor com parametros Horario(int d = 0, int h = 0, int m = 0, int s = 0); Horario(int s); ~Horario() {} //sobrecarga de operadores Horario operator+(Horario a); Horario operator-(Horario a); Horario operator*(Horario a); Horario operator/(Horario a); //imprime valor na tela void imprime_data(); //incrementa segundos void incrementa_seg(); //total de segundos para facilitar a transformações nas sobrecargas int total_segundos(); }; //inicializando elementos Horario::Horario(int d, int h, int m, int s){ dia = d; hora = h; minuto = m; segundo = s; arruma_tempo(); } Horario::Horario(int s){ segundo = s; dia = hora = minuto = 0; arruma_tempo(); } int Horario::total_segundos(){ return (segundo + minuto*60 + hora *60*60 + dia*24*60*60); } void Horario::arruma_tempo(){ while(segundo >=60){ minuto++; segundo -= 60; } while(minuto >=60){ hora++; minuto -=60; } while(hora >= 24){ dia++; hora -= 24; } } void Horario::imprime_data(){ cout << dia << " dias " << hora << " horas " << minuto << " minutos " << segundo << " segundos" << endl; } void Horario::incrementa_seg(){ segundo++; arruma_tempo(); } Horario Horario::operator +(Horario a){ return Horario(total_segundos() + a.total_segundos()); } int main(int argc, char** argv) { return (EXIT_SUCCESS); }
O erro :
main.cpp:96: error: call of overloaded `Horario(int)' is ambiguous
Alguém tem ideia de como solucionar isso ?
Obrigado