Что нужно изменить, или возможно хукнуть (перехватить) для изменения правила деления? В моих задачах при делении числа на 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 <
Комментариев нет:
Отправить комментарий