Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.04.2010, 21:24
Hely Hely вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 2
Репутация: 10
По умолчанию Методы с параметрами

Помогите, пожалуйста, разобраться с методами )
Пусть есть некоторый класс, в нем есть метод с параметрами и другой метод, который использует первый. Получается, надо параметры первого метода записывать и во втором?
Не уверена, что понятно написала, поэтому приведу кусочек программы:
Код:
Type TStage=class
...
function eta(key,n:byte; MultK,et0,et1:single):single; 
function xi_t:single; 
...
function TStage.eta;
begin
if key=1 then eta:=power(et0/MultK,1/n)
else eta:=K_eta*et1;
end;

function TStage.xi_t;
begin
xi_t:=(1-eta)/((1+alpha_k)*Kt);
end;
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 25.04.2010 в 12:58.
Ответить с цитированием
  #2  
Старый 24.04.2010, 21:54
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Во первых:
Код:
function TStage.eta;
begin
if key=1 then eta:=power(et0/MultK,1/n)
else eta:=K_eta*et1;
end;
Как вы описали функцию в класе, так она должна быть и описана при исполнении тоесть правельно будет так:
Код:
function TStage.eta(key,n:byte; MultK,et0,et1:single):single;
begin
if key=1 then eta:=power(et0/MultK,1/n)
else eta:=K_eta*et1;
end;
И тогда в функцию передадутца вот эти параметры key,n:byte; MultK,et0,et1:single

Во вторых:
Код:
xi_t:=(1-eta)/((1+alpha_k)*Kt);
Какие параметры вы передаете функции eta? Так как я видел ее в описании класа, она емеет 5 параметров.

Возможно вы неправельно описали функцию в класе, потому она и не работает. Если ето так то описание класа будет выглядеть:
Код:
Type TStage=class
...
function eta:single; 
function xi_t:single;
Ответить с цитированием
  #3  
Старый 26.04.2010, 21:22
Hely Hely вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 2
Репутация: 10
По умолчанию

Bars1992, параметры метода пишутся только в разделе Interface, а в разделе Implementation - нет.
Я свою проблему решила таким образом: в поля класса добавила еще одно - eta1, и в конструкторе ему присвоила значение eta. Получилось, во-первых, что я его один раз вычисляю, а во-вторых, в другие фунции, зависящие от eta, мне надо тащить ее параметры ))) Но это я не сама додумалась - преподаватель подсказал.
Но все равно, спасибо, что откликнулись )))
Ответить с цитированием
  #4  
Старый 26.04.2010, 22:25
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Я иммел введу, что если ты в интерфейсе написала что функция имеет параметры то при вызове этой функции в имплементейшен ты должна передавать какието параметры если они конечно не выставлены по дефелту.
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025