クラスIntervalで[]演算子をオーバーロードして、分または秒を返しました。
しかし、 []演算子を使用して分または秒に値を割り当てる方法がわかりません。
例:このステートメントを使用できます
cout << a[1] << "min and " << a[0] << "sec" << endl;
しかし、[]演算子をオーバーロードしたいので、を使用して分または秒に値を割り当てることもできます
a[1] = 5;
a[0] = 10;
私のコード:
#include <iostream>
using namespace std;
class Interval
{
public:
long minutes;
long seconds;
Interval(long m, long s)
{
minutes = m + s / 60;
seconds = s % 60;
}
void Print() const
{
cout << minutes << ':' << seconds << endl;
}
long operator[](int index) const
{
if(index == 0)
return seconds;
return minutes;
}
};
int main(void)
{
Interval a(5, 75);
a.Print();
cout << endl;
cout << a[1] << "min and " << a[0] << "sec" << endl;
cout << endl;
}
メンバー変数をプライベートとして宣言する必要があることは知っていますが、便宜上、ここではパブリックとして宣言しました。