16
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 16, 2015, 06:34:06 pm »Зачем в примере переменные p0, p1, p2?Очевидно, что это пример - часть программы, в которой опущено созданий переменных разных типов, значения который в дальнейшем и присваиваются p.
Т.е., опущено, например
Код: [Выделить]
NEW(p0); NEW(p1); NEW(p2);
затем идет код, в котором переменной p приcваиваются нужные значенияКод: [Выделить]
TYPE R = RECORD a: INTEGER END ;
R0 = RECORD (R) b: INTEGER END ;
R1 = RECORD (R) b: REAL END ;
R2 = RECORD (R) b: SET END ;
P = POINTER TO R;
P0 = POINTER TO R0;
P1 = POINTER TO R1;
P2 = POINTER TO R2;
VAR p: P; p0: P0; p1: P1; p2: P2;
...
IF a THEN
p:= p0;
ELSIF b THEN
p:= p1
...
END;
CASE p OF
P0: p0.b := 10 |
P1: p1.b := 2.5 |
P2: p2.b := {0, 2}
END
а p0.b := 10p1.b := 2.5
...
чтобы не производить приведение типа p к производному типу