program lab15;
uses
crt;
type
t_vector=object
a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2: shortint;
procedure ab;
procedure cd;
procedure print;
end;
t_operat=object(t_vector)
Xa,Ya,Xs,Ys: shortint;
procedure add;
procedure sub;
procedure print;
end;
procedure t_vector.ab;
begin
a1:=random(10);
b1:=random(10);
a2:=random(10);
b2:=random(10);
a:=a1+a2;
b:=b1+b2
end;
procedure t_vector.cd;
begin
c1:=random(10);
d1:=random(10);
c2:=random(10);
d2:=random(10);
c:=c1+c2;
d:=d1+d2
end;
procedure t_vector.print;
begin
writeln('A(',a1,',',b1,'); B(',a2,',',b2,'); AB(',a,',',b,')');
writeln('C(',c1,',',d1,'); D(',c2,',',d2,'); CD(',c,',',d,')')
end;
procedure t_operat.add;
begin
Xa:=a+c;
Ya:=b+d
end;
procedure t_operat.sub;
begin
Xa:=a-c;
Ya:=b-d
end;
procedure t_operat.print;
begin
writeln('Add: (',Xa,',',Ya,')');
writeln('Sub: (',Xs,',',Ys,')');
end;
var
vector:t_vector;
operat:t_operat;
begin
clrscr;
randomize;
vector.ab;
vector.cd;
vector.print;
operat.add;
operat.sub;
operat.print;
readkey
end.
ООП. Наследование
Помогите, пожалуйста, составил прогу для операций над векторами, а операции сложения и вычитания не пашут (результаты- нули). Мне кажетсо, что нужно где-то вставить ещё обьявление переменных. Исправьте, кто может.
Ладно, сформулирую вопрос по-проще: "Почему переменные a, b, c, d обнуляются при попадании в наследник?"
Не попадают они туда. Сделай operat.ab
А можешь исправить, а то не понятно куда его, плз.. Но мне обязательно нужно, чтоб там было 2 объекта и наследование.
vector - один объект. operat - другой. Когда делаешь vector.ab, это никак не затрагивает operat.ab.