Объясните пож-та еще раз про const
От: meier13  
Дата: 10.09.11 11:11
Оценка: :)
Хотел написать такой кусок кода:
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 а затем мой класс, перегрузить внутри моего класса, а не выносить его отдельно за пределы класса?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.