вот какой вопрос возник(словами не получается попробую на примере) дано 3 объекта(одного типа M с двумя полями- днем и месецем.) необходимо прочитать данные для первых 2-х объектов(это я сам сделаю) и ввести разницу дат в 3-ий объект(как).
примечание первый и второй объект являются родительскими для третьего. Помогите.. Собственно у меня все получается кроме обработки данных
Contrary to objects, all data fields of a class are always stored in heap memory.
Дальше - из ref.pdf: 2)
Цитата
6.3.2 Virtual methods Classes have virtual methods, just as objects do. There is however a difference between the two. For objects, it is sufficient to redeclare the same method in a descendent object with the keyword virtual to override it. For classes, the situation is different: virtual methods must be overridden with the override keyword. Failing to do so, will start a new batch of virtual methods, hiding the previous one.
3) Добавлены message methods для классов ... 4) Уровень доступа published
+ еще одно отличие: operators overloading прекрасно работает с Object-ами, но с Class-сами происходят очень непонятные вещи...
Цитата(compiler)
в том же и дело что это только модули подключаемые к программе...
Ну и что, что только модули? Если модуль, так можно бессмысленно писать что-то? Что ты думаешь будет делаться в этом фрагменте:
o1.p();
? Особенно, если ни один экземпляр класса (или объекта) еще не инстанцирован?
а можна тут по подробней, а то я не могу понять...
Цитата(volvo @ 9.07.2007 13:28)
+ еще одно отличие: operators overloading прекрасно работает с Object-ами, но с Class-сами происходят очень непонятные вещи...
спасибо за предупреждение
Цитата(volvo @ 9.07.2007 13:28)
Что ты думаешь будет делаться в этом фрагменте:
o1.p();
?
если мы его немног видоизменим, то ничего страшного...
{$mode objfpc} {$STATIC ON} unit e1; interface type o1 = class i:integer; static;//кто придумал задавать параметр через разделитель? class procedure p();
end; implementation procedure o1.p(); begin inc(self.i); end; end.