На первый взгляд похоже, что ваша проблема в тестовом коде, а не в перегруженном операторе. Этот код:
int hora, min, seg;
Hora h(hora, min, seg);
... создает объект Hora
, инициализированный из текущих значений hora
, min
и seg
. Но они не были инициализированы ...
Я бы попробовал что-то вроде:
int hora=0, min=0, seg=0;
Hora h(hora, min, seg);
... и посмотрю, исправляет ли это предупреждение. Если нет, мне кажется, что предупреждение, вероятно, содержится в коде, который вы нам не показывали.
Обязательное отступление: когда / если вы хотите сделать что-то подобное в реальном коде (а не просто в назначении), вы вероятно, вместо этого нужно использовать std::get_time
.