Хотел написать такой кусок кода:
class MyInt
{
int data;
int isinf;
public:
MyInt(int d = 0,int inf =0):data(d),isinf(inf) {;}
MyInt(const MyInt &myi) {data = myi.data; isinf = myi.isinf;}
operator int() {return data;}
MyInt& operator = (const int &i) {data = i; isinf = 0;}
MyInt& operator = (const MyInt &myi) {data = myi.data; isinf = myi.isinf;}
int GetInf() {return isinf;}
int GetData() {return data;}
};
bool operator >(const int &i, MyInt &myi) //вот так все хорошо
{
if (myi.GetInf() == 1) return false;
return (i > myi.GetData());
}
но если написать
bool operator >(const int &i, const MyInt &myi)
То далее получается ошибка GetInf: невозможно преобразовать указатель 'this' из 'const MyInt' в 'MyInt &'
Буду благодарен, если еще раз объясните в чем тут дело
и еще вопрос можно ли как-то оператор > где первым идет int а затем мой класс, перегрузить внутри моего класса, а не выносить его отдельно за пределы класса?