Здравствуйте, Аноним, Вы писали:
А>мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в качестве long
Ну так передавай — в чем проблема-то?
Любите книгу — источник знаний (с) М.Горький
Re[4]: как int const преобразовать в LONG?
От:
Аноним
Дата:
23.09.04 07:34
Оценка:
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в качестве long
B>Ну так передавай — в чем проблема-то?
ругается
error C2664: cannot convert parameter 1 from 'int (void) throw() const' to 'LONG'
Hello, !
B>> Здравствуйте, Аноним, Вы писали:
А>>> мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в А>>> качестве long
B>> Ну так передавай — в чем проблема-то?
> ругается > error C2664: cannot convert parameter 1 from 'int (void) throw() const' to > 'LONG'
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Bell, Вы писали:
B>>Здравствуйте, Аноним, Вы писали:
А>>>мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в качестве long
B>>Ну так передавай — в чем проблема-то?
А>ругается А>error C2664: cannot convert parameter 1 from 'int (void) throw() const' to 'LONG'
Судя по сообщению, передается вовсе не int const, а имя функции констатной функции, возвращающей int. Текст — в студию!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Bell, Вы писали:
B>>Здравствуйте, Аноним, Вы писали:
А>>>мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в качестве long
B>>Ну так передавай — в чем проблема-то?
А>ругается А>error C2664: cannot convert parameter 1 from 'int (void) throw() const' to 'LONG'
Скобочки после имени функции поставить надо однако
Здравствуйте, Аноним, Вы писали:
А>ругается А>error C2664: cannot convert parameter 1 from 'int (void) throw() const' to 'LONG'
В переводе на русский язык: "не могу преобразовать тип 'целочисленная функция без параметров и исключений'" к типу "32-битное целое".
Скобочки-то поставил? Или просто написал:
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Аноним, Вы писали:
А>>мне нужно значение, которое возвращает CImage::GetWidth, передать в другую процедуру в качестве long
К>
К>class CImage
К>{
К> ...
К> int GetWidth() const; // const относится к классу, а не к возвращаемому значению
К> ...
К>};
К>void bar(const long& arg);
К>void buz(long& var);
К>void test(CImage const* ptr)
К>{
К> bar( ptr->GetWidth() );
К> buz( ptr->GetWidth() ); // ошибка: попытка конверсии rvalue в неконстантный lvalue
К>}
К>
К>Ну и в чём проблемы?
проблема в том, что параметры передаются по ссылке. следовательно компилятор полагает, что функция buzможет изменять значение параметра, что в данном контексте невозможно, отсюда ошибка. в функции bar такого не возникает, т.к. параметр константный. поэтому только так:
Здравствуйте, Bork, Вы писали:
B>проблема в том, что параметры передаются по ссылке. следовательно компилятор полагает, что функция buzможет изменять значение параметра, что в данном контексте невозможно, отсюда ошибка. в функции bar такого не возникает, т.к. параметр константный. поэтому только так: