Я хочу создать объект BigInteger (для практики). Я хочу, чтобы перегруженные операторы принимали любые числовые типы данных. Я могу сделать это полиморфно, но так как это было бы нецелесообразно перегружать 20+ бинарных операторов для каждого из 20 ~ числовых типов, я действительно хотел бы сделать что-то вроде этого:общий номер в C++
X & operator+(const anynum input)
{
return this->value += input;
}
...
main()
{
X a = 1;
a = a + 1;
a = a + 1L;
}
извините, мой вопрос : "Это возможно"?
Я исследовал эту большую часть прошлой ночи. Я прочитал запись о перегрузке оператора на cpp.com, список перегружаемых операторов на wikipedia, различные сообщения о переполнении стека.
я не заметил вопрос. Вы рассматривали шаблоны? –
Вместо того, чтобы писать двоичные операторы для каждой возможной пары, почему бы не написать один двоичный оператор для bigint + bigint, а затем заставить операторов преобразования преобразовать из других числовых типов в bigint? –
лицоpalm. Ага. Это было слишком долго, так как я сделал C++. @tripl_r опубликуйте это как ответ, и я его выберу. – chrisgotter