Форум: "Основная";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизПерегрузка функций Найти похожие ветки
← →
Старик (2006-01-09 10:56) [0]Почему не удается перегрузить функции, не имеющие параметров?
Частный случай:
unit Algebra;
interface
uses Math;
function GetIdentityMatrix_3Dim : Matrix_3Dim; overload;
function GetIdentityMatrix_4Dim : Matrix_4Dim; overload;
.....
После такого определения компилятор пишет, что объявление функции GetIdentityMatrix_4Dim отличается от предыдущего.
А перегрузка функций, имеющих хоть какой-нибудь параметр и не важно какой тип результата, происходит без проблем.
← →
френк (2006-01-09 11:05) [1]простите, но я не вижу тут перегрузки )
1. должны быть одинаковые(!) имена функций, чего я не наблюдаю у вас
2. должны быть разные параметры / результаты, что я наблюдаю )
← →
palva © (2006-01-09 11:18) [2]> разные параметры / результаты
По-моему, должны быть разные параметры. Разных результатов недостаточно.
← →
френк (2006-01-09 11:22) [3]забыл я ентот момент, ей богу... но скорее вы правы.
← →
TUser © (2006-01-09 11:24) [4]В этом смысл есть. Вот потом будет написан вызов
a:=bbb
где bbb - перегруженная функция. Компилятор написать должен такие инструкции
1. вызвать функцию
2. получить результат в переменную а
И что должен писать компилятор по поводу п.1? Отсюда и правило - перегружаемые функции должны иметь одинаковые имена и разные параметры. По парамерам они и различаются.
← →
Плохиш © (2006-01-09 11:25) [5]
> palva © (09.01.06 11:18) [2]
> По-моему,
Твоё мнение совпадает с мнением разработчиков ;-) Об этом они в справке в первом же абзаце написали.
← →
Старик (2006-01-09 12:46) [6]Виндоват :) По инерции ляпнул.
Обе функции называются просто GetIdentityMatrix.
А результаты разные.
//разные параметры. По парамерам они и различаются.
Понятно, спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c