0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 8
1

Выбор перегруженного метода

19.06.2015, 08:22. Показов 481. Ответов 2
Метки нет (Все метки)

Этот вопрос вырос из этого . Почему при integral conversions/promotions нет приоритетов "сужающее" или "расширяющее" при выборе перегруженного метода?

Вот примеры неоднозачностей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void f(long long v) { cout << 1; }
void f(int v) { cout << 2; }
int main() {
    long l = 2L;
    f(l);
    return 0;
}
 
 
void f(char v) {cout << 1;}
void f(long v) {cout << 2;}
int main() {
    short i = 2;
    f(i);
    return 0;
}
Скиньте пожалуйста материал где можно почитать поподробней про выбор перегруженной функции, http://valera.asf.ru/cpp/book/c09.html это оказалось не совсем подробным.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 08:22
Ответы с готовыми решениями:

Выбор перегруженного метода в зависимости от способа вызова
Столкнулся со странным поведением компилятора. При попытке вызвать оператор напрямую - выводит в...

Синтаксическая ошибка при определении метода перегруженного оператора,за классом
Есть два класса. Point1 и Pointer1 Синтаксическая Ошибка в Pointer1.cpp в перегрузке операторов....

Выбор нужного перегруженного метода
Известно, что если передать в перегруженный метод null, то java выберет самый специфичный метод. ...

Приоритет выбора перегруженного метода
Знаю, что 100 раз подобные вопросы обсуждалось, но мне никак не уловить самую суть public...

2
Эксперт С++
8614 / 4177 / 927
Регистрация: 15.11.2014
Сообщений: 9,465
19.06.2015, 09:22 2
если сильно утрировать, то общее правило,
которым руководствуется компилятор,
реализуется следующем образом:

есть функции:

C++
1
2
void foo(y) { bar(y); }
void bar(x) { foo(x); }
если foo со своим аргументом может вызвать bar,
а bar со своим аргументом - foo,
значит функции равнозначны.

теперь представьте себе мысленно,
что foo и bar на самом деле имеют одинаковые имена.
1
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 8
20.06.2015, 10:19  [ТС] 3
А где можно почитать про приоритеты поподробней? Был бы очень рад, если кто нибудь скинул годный материал на русском.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2015, 10:19

Нет перегруженного метода для button
Добрый вечер. Есть такой код: private void button17_Click(object sender, EventArgs e,...

Нет перегруженного метода который соответствует делегату
Здравствуйте. Пытаюсь вывести процесс извлечения архива в label1. Никак не получается, ну я ведь...

Ошибка: Нет перегруженного метода , который соответствует делегату
Подскажите, пожалуйста, что за ошибка и как с ней бороться? Ошибка CS0123 Нет перегруженного...

Ошибка: Нет перегруженного метода для "TreeView1_BeforeSelect"
VS 2017 Выдаёт ошибку: &quot;Нет перегруженного метода для &quot;TreeView1_BeforeSelect&quot;, который...

Нет перегруженного метода для FillGrid, который соответствует делегату "EventHandler"
Задача: создать windows forms, где расположена таблица, в которой будет 2 параметра - дата и...

В чём причина ошибки "Нет перегруженного метода, который соответствует делегату"?
Имеем: foreach (var file in allFiles) { myThreads.Add(new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru