Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Изменение правила деления на 0

Что нужно изменить, или возможно хукнуть (перехватить) для изменения правила деления? В моих задачах при делении числа на 0 должен получаться 0. Меня интересует именно изменение предписанного алгоритма


Ответ

#include using namespace std; class Int_type { int k; public: Int_type(int i = 0) : k(i) {} Int_type& operator ++() { ++k; return *this; } Int_type operator ++(int) { Int_type t; ++(t.k); return t; } Int_type& operator =(const int& i) { k = i; return *this; } Int_type& operator /=(const int& i) { k = i ? k / i : 0; return *this;} operator int() const { return k; } }; inline Int_type operator /(const Int_type& n, const int& i) { Int_type t = n; t /= i; return t; }
Можете использовать обьекты класса вместо обьектов типа int и делить на ноль
int main() { Int_type i; i = 19; ++i; cout << i << endl << i/ 2 << endl << i - 2 <

Комментариев нет:

Отправить комментарий