![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поле предка [D7, WinXP]
Kolan © (2004-11-06 00:21:00)Есть у меня класс:
type
TCalculation = class
private
FExpressions: TStringList;
procedure SetExpressions(const Value: TStringList);
function GetExpressions: TStringList;
protected
procedure ExtractAges(var LAge,RAge: Extended);
function EvaluateFunction(X: Extended): Extended;
function RoundEx(X: Extended; Precision: Int64): Extended;
public
constructor Create;
function Evaluate: string;
published
property Expressions: TStringList read GetExpressions write SetExpressions;
И есть его наследник
type
TOneRootFinder = class(TCalculation)
private
FExpressions: TStringList;
protected
function CheckFields: Integer;
function EvalByDixotomiyaMethod: string;
function CheckAccyracy(NextRoot, Root: Extended): Integer;
public
constructor Create;
function Evaluate: string;
published
end;
У наследника должна быть функция работающая с FExpressions: TStringList;
как "добраться" до этого поля
Kolan (2004-11-06 00:55:00) [1]:) сам понял. Благо дарю. :)
Kolan (2004-11-06 00:53:00) [2]И заодно как к
MyExpressions: TStringList read FExpressions;
теперь обратится?
Kolan (2004-11-06 00:49:00) [3]
> Также IMHO лучше объявить Expressions как TStrings
> protected
> property MyExpressions: TStringList read FExpressions;
Имелось ввиду еще доно свойство в добавок к моемуproperty Expressions: TStringList read GetExpressions write SetExpressions?
GuAV (2004-11-06 00:46:00) [4]Kolan © (06.11.04 0:36) [4]
А при TCalculation(self).FExpressions FExpressions все равно из private убрать надо?
Это вообще снимается если
Kolan © (06.11.04 0:33) [3]
Не его там не должно быть, скопировал нето
Kolan © (06.11.04 0:33) [3]
Как лучьше (правильней) вроде поля должны быть всегда в private
Ученик (06.11.04 0:42) [5] уже ответил.
Также IMHO лучше объявить Expressions как TStrings (создавать при этом всё равно TStringList.Create).
Ученик (2004-11-06 00:42:00) [5]TCalculation = class
...
protected
property MyExpressions: TStringList read FExpressions;
Kolan (2004-11-06 00:36:00) [6]А при
TCalculation(self).FExpressionsFExpressionsвсе равно из private убрать надо?
Kolan (2004-11-06 00:33:00) [7]
> Не заметил поля FExpressions: TStringList; в TOneRootFinder.
Не его там не должно быть, скопировал нето - пробовал по разному.
Как лучьше (правильней) вроде поля должны быть всегда в private
GuAV (2004-11-06 00:30:00) [8]Не заметил поля FExpressions: TStringList; в TOneRootFinder. Раз оно там есть, до него можно добраться из наследника. Конфликты имен приводят к скрытию полей, добраться до скрытого из наседника можно TCalculation(self).FExpressions
GuAV (2004-11-06 00:27:00) [9]Переместить поле в секцию protected либо писать наследника в том же модуле.