Я не знаю, есть ли ответ на этот вопрос уже в stackoverflow. Но я просто не могу найти правильное ключевое слово для поиска.
Ниже я вставил урезанную версию моего кода.
Итак, в основном, что я пытаюсь сделать в main (), это вычесть 122 из t2. Я полагаю, мой компилятор автоматически преобразует целое число в объект Timestamp, а затем вычитает его, как показано в Timestamp.cpp.
Но когда он достигает t4, он не конвертирует его и выдает мне следующую ошибку:
нет совпадения для 'operator-' в '722 - t1'
Я на 100% уверен, что это возможно. Но как?
Может быть, я совершенно не прав насчет конвертации ... Поэтому, пожалуйста, не стесняйтесь поправлять меня, я пытаюсь чему-то научиться.
ПОЛОЖЕННЫЙ КОД ВНИЗ:
main.cpp:
#include <iostream>
#include <iomanip>
#include "Timestamp.h"
using namespace std;
int main() {
Timestamp t3(t2 - 122);
cout << "T3 = " << t3 << endl;
Timestamp t4(722 - t1);
cout << "T4 = " << t4 << endl;
return 0;
}
Timestamp.h
#ifndef TIJDSDUUR_H
#define TIJDSDUUR_H
using namespace std;
class Timestamp {
public:
Timestamp(int);
Timestamp operator- (const Timestamp &t);
private:
int hour;
int min;
};
Timestamp.cpp
Timestamp::Timestamp(int m) : hour(0), min(m) {
}
Timestamp Timestamp::operator- (const Timestamp &t) {
Timestamp temp;
temp.hour = hour;
temp.min = min;
temp.hour -= t.hour;
temp.min -= t.min;
while(temp.min < 0.00) {
temp.hour--;
temp.min += 60;
}
return temp;
}