Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ вопрос по ООП

Автор: compiler 22.04.2007 15:40

Добрый день!
Начал вот ООП осваивать, появился вопрос..
Возможна ли обработка нескольких полей в одном методе?
например отнять от двух полей(тип integer) по единице...
Заранее благодарен..

Автор: volvo 22.04.2007 15:44

В методе? Да хоть у всех полей объекта... Какая разница, сколько полей ты обрабатываешь?

Автор: compiler 22.04.2007 15:48

а как?
тоесть существует обьект с двумя полями, и надо совершить над ними одинаковые действие... можно пример..

Автор: volvo 22.04.2007 15:55

Ну, поскольку описывать объекты и их поля можно по-разному, а то, как ты описываешь, не оговаривалось - то:

type
A = object
x1, x2: integer;

constructor init;

procedure recalc;
procedure print;
end;

constructor A.init;
begin
x1 := 10; x2 := 5;
end;

procedure A.recalc;
begin
dec(x1); dec(x2);
end;

procedure A.print;
begin
writeln('x1 = ', x1, ' x2 = ', x2);
end;

var obj: a;
begin
obj.init;
obj.print;
obj.recalc;
obj.print;
end.


Какой из пунктов вопроса не выполняется? 2 целых? Два... Метод один их обрабатывает? Один...

Автор: compiler 22.04.2007 16:01

щас погуляю и буду разбираться...
Спасибо!

Автор: compiler 22.04.2007 18:51

а вот еще какой вопрос возник(словами не получается попробую на примере)
дано 3 объекта(одного типа M с двумя полями- днем и месецем.) необходимо прочитать данные для первых 2-х объектов(это я сам сделаю) и ввести разницу дат в 3-ий объект(как).

может это уже задача? нет это .. попытка объяснить вопрос. а может и задача...

добавлено позже...
примечание
первый и второй объект являются родительскими для третьего.
Помогите.. Собственно у меня все получается кроме обработки данных

Автор: volvo 22.04.2007 19:52

Реализация этого будет сильно зависеть от компилятора, поэтому такой вопрос лучше задавать в конкретном разделе...

Автор: compiler 22.04.2007 21:04

Цитата(volvo @ 22.04.2007 15:52) *
Реализация этого будет сильно зависеть от компилятора, поэтому такой вопрос лучше задавать в конкретном разделе...

тема переходит сюда http://forum.pascal.net.ru/index.php?showtopic=16866&pid=98714&st=0&#entry98714