Помощь - Поиск - Пользователи - Календарь
Полная версия: вопрос по ООП
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
compiler
Добрый день!
Начал вот ООП осваивать, появился вопрос..
Возможна ли обработка нескольких полей в одном методе?
например отнять от двух полей(тип integer) по единице...
Заранее благодарен..
volvo
В методе? Да хоть у всех полей объекта... Какая разница, сколько полей ты обрабатываешь?
compiler
а как?
тоесть существует обьект с двумя полями, и надо совершить над ними одинаковые действие... можно пример..
volvo
Ну, поскольку описывать объекты и их поля можно по-разному, а то, как ты описываешь, не оговаривалось - то:
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
щас погуляю и буду разбираться...
Спасибо!
compiler
а вот еще какой вопрос возник(словами не получается попробую на примере)
дано 3 объекта(одного типа M с двумя полями- днем и месецем.) необходимо прочитать данные для первых 2-х объектов(это я сам сделаю) и ввести разницу дат в 3-ий объект(как).

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

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

тема переходит сюда ООП во FP
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.