Я следовал учебнику по перегрузке операторов из TutorialsPoint .
Это мой класс:
struct Decimal {
private:
int16_t exponent;
uint8_t length;
uint16_t mantissa[DecimalMaxSize]{};
...
public:
uint16_t &operator[](int i);
...
и моя реализация:
uint16_t &Decimal::operator[](int i) {
if( i > DecimalMaxSize ) {
std::cout << "Index out of bounds" << std::endl;
// return first element.
return mantissa[0];
}
return mantissa[i];
}
Когда я теперь хочу использовать это так:
Decimal *d = new Decimal(...);
uint16_t di = d[i];
Я получаю следующую ошибку: «Неверное преобразование из десятичного в uint16_t»
Как я могу это исправить?