|
Вопрос # 4 386/ вопрос открыт / |
|
Здравствуйте эксперты!
min@y, в книжках атк же написано, нет ли какого-нть понятного народного объяснение??? не могу понять,когда использовать constructor, акогда create.
 |
Вопрос задал: габибыч (статус: Заблокирован)
Вопрос отправлен: 5 июля 2010, 22:43
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Ну вот я набросал тут немного от руки...
type
TExample = class
private
FField: Integer; // поле
public
constructor Create;
property Field: Integer read FField write FField; // свойство
end;
implementation
constructor TExample.Create;
begin
inherited; // если нужно
// Далее - инициализация полей экземпляра объекта, если надо,
// и/или создание дочерних объектов
FField:= 100500;
end;
procedure TMainForm.ButtonClick(Sender: TObject);
begin
// Создание экземпляра класса
FExample:= TExample.Create();
end;
end.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 июля 2010, 22:56
Оценка за ответ: 4
Комментарий к оценке: кажется понял!) риспэкт
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 6 июля 2010, 19:02; участников в обсуждении: 5.
|
Паровоз (статус: 10-ый класс), 5 июля 2010, 22:51 [#1]:
Нельзя ли поконкретнее?
|
|
min@y™ (статус: Доктор наук), 5 июля 2010, 22:55 [#2]:
Ты имеешь в виду само слово "constructor"?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
padonak (статус: Посетитель), 5 июля 2010, 22:57 [#3]:
>>> когда использовать constructor, акогда create
когда отладчик не гавкает на create, то смело используй его )))
|
|
min@y™ (статус: Доктор наук), 5 июля 2010, 23:09 [#4]:
Цитата (габибыч):
кажется понял!) риспэкт
А чо ж 4 балла? Что-то не так?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
габибыч (статус: Заблокирован), 5 июля 2010, 23:20 [#5]:
min@y, это скорее мне баллы, за то что туго доганяю. ответ отличный, спасибо!
|
|
габибыч (статус: Заблокирован), 5 июля 2010, 23:28 [#6]:
значит, я так понял:
тот пример что сверху и (далее по своему преобразовываю):
type
TExample = class
private
FField: Integer; // поле
public
property Field: Integer read FField write FField; // свойство
end;
var Example: TExample;
implementation
procedure TMainForm.ButtonClick(Sender: TObject);
begin
// Создание экземпляра класса
Example:= TExample.Create();
end;
end.
это не одно и то же???
|
|
min@y™ (статус: Доктор наук), 5 июля 2010, 23:29 [#7]:
Цитата (габибыч):
это не одно и то же???
...как что???!!!111
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 5 июля 2010, 23:33 [#8]:
Цитата (габибыч):
var Example: TExample;
В данном случае ты описываешь указатель как глобальную переменную. Иеногда это действительно необходимо. Однако, я до сих пор никак не вкурю: в чём проблема-то?!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
габибыч (статус: Заблокирован), 5 июля 2010, 23:57 [#9]:
min@y проблема вот в чем:
то что ты написал (см. свой пример) и то что я из него сделал (см. мои преобразования) - это одно и то же???
|
|
min@y™ (статус: Доктор наук), 6 июля 2010, 09:49 [#10]:
Цитата (габибыч):
это одно и то же???
Не вижу отличий, кроме отсутствия переопределения конструктора. Если в конструкторе потомка не нужно делать какие-то действия по инициализации и/или по созданию дочерних объектов, то, конечно, конструктор писать не надо. Example:= TExample.Create() вызовет конструктор предка (в данном случае - конструктор класса TObject).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ерёмин А.А. (статус: *Администратор), 6 июля 2010, 12:37 [#11]:
габибыч: что это за вопрос такой? Почему нельзя продолжить в мини-форуме прошлого вопроса?
|
|
габибыч (статус: Заблокирован), 6 июля 2010, 19:02 [#12]:
какой вопрос?? не понял...
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|