Форум программистов, компьютерный форум, киберфорум
Наши страницы

Есть два перегруженныйх оператора *, но компилятор не может выбрать нужный, почему? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка по убыванию. Чтение из файла http://www.cyberforum.ru/cpp-beginners/thread614368.html
Помогите, пожалуйста, отсортировать содержимое файла.. Т.е. Имеется файл в 10 строк Popov.A.N. m 3.8 k Litvinov.A.S. m 3.4 i Fomin.G.E. m 4.5 k Chernov.A.A. m 4.8 k Korolenko.A.F. j 4.6 i...
C++ C++ Учебный курс 2-е издание (Паоло Франка) Купил книгу "C++ Учебный курс 2-е издание" (Паоло Франка). В интернете в электронном виде прочитал несколько страниц 1-го издания. Там всё основано на примерах с дискеты. Беда в том, что во 2-м... http://www.cyberforum.ru/cpp-beginners/thread614360.html
C++ Матрицы - перегрузка оператора *
Здравствуйте, помогите пожалуйста. Имеется библиотека Matrixclass.h, необходимо в ней перегрузить оператор умножения. Как только я не пытался его реализовать, но выводит не понять что. Посоветуйте...
C++ Методы и классы
добрый день) код выдает ошибку "E2089 Identifier 'proc' cannot have a type qualifier". не могу понять в чем проблема. int main() { class myclass { int num; public:...
C++ Бинарное дерево (отладка) http://www.cyberforum.ru/cpp-beginners/thread614332.html
Прога работает и всё запускает (здесь фрагмент), но, к сожалению, выводит некие символы и т.д. Где что надо поправить? struct prod { char FI; int tnum,date,sum; };
C++ Мышь да Клава Помогите написать программу, котороя считает каждое нажатие на клавиатуру и мышь. подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.06.2012, 18:20
Хм, интересное поведение. Мне компилятор сказал следующее:
ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second
Если добавить ко второму параметру friend-оператора квалификатор const, всё скомпилируется. Если убрать конвертер double - тоже. При этом вроде бы имеется два оператора:
klass operator*(const klass&, const class&)
и
klass operator*(const int&, klass&)
В месте вызова для первого имеется два точных соответствия, для второго преобразование и точное соответствие, т.е. по идее компилятор должен считать первый вариант лучшим и вызывать именно его... Помогайте найти в стандарте соответствующий пункт))
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru