Текущий архив: 2004.11.21;
Скачать: CL | DM;
ВнизПоле предка Найти похожие ветки
← →
Kolan © (2004-11-06 00:21) [0]Есть у меня класс:
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;
как "добраться" до этого поля
← →
GuAV © (2004-11-06 00:27) [1]Переместить поле в секцию protected либо писать наследника в том же модуле.
← →
GuAV © (2004-11-06 00:30) [2]Не заметил поля FExpressions: TStringList; в TOneRootFinder. Раз оно там есть, до него можно добраться из наследника. Конфликты имен приводят к скрытию полей, добраться до скрытого из наседника можно TCalculation(self).FExpressions
← →
Kolan © (2004-11-06 00:33) [3]
> Не заметил поля FExpressions: TStringList; в TOneRootFinder.
Не его там не должно быть, скопировал нето - пробовал по разному.
Как лучьше (правильней) вроде поля должны быть всегда в private
← →
Kolan © (2004-11-06 00:36) [4]А при
TCalculation(self).FExpressions
FExpressions
все равно из private убрать надо?
← →
Ученик (2004-11-06 00:42) [5]TCalculation = class
...
protected
property MyExpressions: TStringList read FExpressions;
← →
GuAV © (2004-11-06 00:46) [6]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).
← →
Kolan © (2004-11-06 00:49) [7]
> Также IMHO лучше объявить Expressions как TStrings
> protected
> property MyExpressions: TStringList read FExpressions;
Имелось ввиду еще доно свойство в добавок к моемуproperty Expressions: TStringList read GetExpressions write SetExpressions
?
← →
Kolan © (2004-11-06 00:53) [8]И заодно как к
MyExpressions: TStringList read FExpressions;
теперь обратится?
← →
Kolan © (2004-11-06 00:55) [9]:) сам понял. Благо дарю. :)
Страницы: 1 вся ветка
Текущий архив: 2004.11.21;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.039 c