ВУЗ:
Составители:
Рубрика:
54
procedure SetNum(value:Integer); virtual;
procedure SetDen(value:Integer); virtual;
function GetNum: Integer; virtual;
function GetDen: Integer; virtual;
end;
Пример 3.8. Модифицированный раздел интерфейса модуля UnitPAry-
Fraction.
unit UnitPAryFraction;
interface
uses UnitRational;
type
PAryFraction = class(Rational)
private
base: Integer;
protected
function isPrime(value: Integer): boolean;
function isPowerOfBase(value: Integer): boolean; virtual;
public
constructor Create;
constructor CreateAs(n, m: Integer);
function Plus (n: Number): Number; override; //
function Minus(n: Number): Number; override; // типы параметров
function Dot (n: Number): Number; override; // и возвращаемых
function Slash(n: Number): Number; override; // значений
procedure Add (n: Number); override; // этих методов
procedure Subtract (n: Number); override; // изменились
procedure MultiplyBy(n: Number); override; //
procedure DivideBy (n: Number); override; //
procedure SetDen (value: Integer); override;
procedure SetBase(value: Integer); virtual;
function GetBase: Integer; virtual;
end;
Объявления методов , осуществляющих арифметические опера-
ции, теперь соответствуют определениям из класса Number. Для класса
PAryFraction такая модификация несущественна: здесь проверка реально-
го типа параметра выполнялась и ранее. Что же кас ается класса Rational,
то в его операторы придется внести соответствующие изменения. По-
скольку мы уже обсуждали подобный код в § 3.3, рас смотрим лишь один
procedure SetNum(value:Integer); virtual;
procedure SetDen(value:Integer); virtual;
function GetNum: Integer; virtual;
function GetDen: Integer; virtual;
end;
П р им ер 3.8. М од ифициров анны й раз д ел инт ерфейс а м од ул я UnitPAry-
Fraction.
unit UnitPAryFraction;
interface
uses UnitRational;
type
PAryFraction = class(Rational)
private
base: Integer;
protected
function isPrime(value: Integer): boolean;
function isPowerOfBase(value: Integer): boolean; virtual;
public
constructor Create;
constructor CreateAs(n, m: Integer);
function Plus (n: Number): Number; override; //
function Minus(n: Number): Number; override; // типы параметров
function Dot (n: Number): Number; override; // и возвращаемых
function Slash(n: Number): Number; override; // значений
procedure Add (n: Number); override; // этих методов
procedure Subtract (n: Number); override; // изменились
procedure MultiplyBy(n: Number); override; //
procedure DivideBy (n: Number); override; //
procedure SetDen (value: Integer); override;
procedure SetBase(value: Integer); virtual;
function GetBase: Integer; virtual;
end;
Объяв л ения м етод ов , ос ущес т в л яющих арифм ет ичес кие опера-
ции, т еперь с оотв ет с т в уют опред ел ениям из кл ас с а Number. Дл я кл ас с а
PAryFraction т акая м од ификация нес ущес т в енна: з д ес ь пров ерка реал ь но-
гот ипа парам ет ра в ы пол нял ас ь и ранее. Ч тоже кас ает с я кл ас с а Rational,
то в его операторы прид ет с я в нес т и с оот в ет с т в ующие из м енения. По-
с кол ь ку м ы уже обс ужд ал и под обны й код в § 3.3, рас с м от рим л иш ь од ин
54
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »
