Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Инициализация


! Какие типы объектов нужно Инициализировать?

к примеру:

если я создаю переменную "perem" типа TFileStream то мне нужно
результат TFileStream.Create(...); присвоить в переменную perem.

Я заметил одну вещь:
Объекты начинающиеся с буквы T (TFileStream, TStream, TBitmap) т.е.
буква T стоит вначале не в "тему". Это заметно когда тип начинается
с заглавной буквы T из за этой буквой тоже стоит заглавная буква (думаю вы
меня поняли :)

Вопрос: Какие типы нужно Инициализировать, а какие нет?
Что вообще обозначает эта буква T? Зачем она?
Ведь у типа данных integer нет ни какой буквы T в начале.

Ответить   Wed, 8 Jun 2005 13:04:42 +0300 (#381527)

 

Ответы:

Здравствуйте, GENEMI,

Буква Т означает, что это тип, исключая базовые (integer, real). И это
только рекомендация. Назвать тип можно хоть как.
Инициализировать нужно классы!!
например, если тип record, то его инициализировать не нужно. Точнее
типы вообще не инициализируются. Инициализируются переменные.
Так вот переменная класса инициализируется, а переменная
типа не инициализируется.

Хмм... Рассказал своими словами..

Ответить   Thu, 9 Jun 2005 15:29:00 +0600 (#381560)

 

Приведу цитату:

Определить переменные, которые надо инициализировать, очень легко. Если название
ее типа начинается с буквы Т, то инициализация обязательна. Все, что начинается
с Т, это объекты. Они используют память и требуют инициализации. Для этого нужно
вызвать метод Create (иногда называется конструктором) объекта, как мы это делаем
с картинкой.

Номер выпуска : 4611
Возраст листа : 627 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/381570
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Thu, 09 Jun 2005 13:42:34 +0400 (#381570)

 

Хаю ду ю ду gena utkin?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

Очередной Фленов?

Ну пусть попробует TPoint или THandle проинициализирует

если уж на то пошло - классы, а не объекты

Гениально!

Что значит "иногда"

PS: Кто там говорил что популярные издания рулят? Вот вам по полочкам
куча ошибок в одном! абзаце. Причем ошибки очень грубые.

Ответить   Thu, 9 Jun 2005 16:23:00 +0500 (#381690)

 

Здравствуйте, Александр,

Точно.

Могу еще интересную цитатку накинуть:
"Кстати, в старом Паскале использовалось понятие "объект". В Delphi
принято называть объекты классами, как это делается в С++. Разницы в
этих понятиях я не вижу, хотя некоторые пытаются вложить в эти понятия
разный смысл, но я этого делать не буду. Понятия класс и объект в моей
книге будут означать одно и то же."

Ответить   Fri, 10 Jun 2005 08:16:55 +0600 (#382075)

 

Здравствуйте, Шистеров.

Вы писали 10 июня 2005 г., 8:16:55:

Ага, "Жигули" и "Нива" Это тоже вроде одно и тоже :))

Ответить   Sat, 11 Jun 2005 08:23:46 +0600 (#382863)

 

Привет Шистеров Павел,

Вы мне письмо написали 10 июня 2005 г. (пятница), а я Вам отвечу вот что:

Как ни странно, но в Паскале 7.0 есть тип object:
TMyObject = object
....
end;

Отличается от record только тем, что возможно использовыание процедур
и функций. Инициализации [явной, как объекты классов] не требует -
инициализируются как записи.

^^^^^^фигня^^^^^^^

Класс - описание, тип.
Объект - переменная класса.

Афоризм напоследок: Наивность - это редкий дар смотреть на мир невооруженным
взглядом.
Winamp глаголит: Б. Гребенщиков - Государыня
11 июня 2005 г. 12:35:40

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4629
Возраст листа : 631 (дней)
Количество подписчиков : 526
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/384014
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sat, 11 Jun 2005 12:40:18 +0400 (#384014)

 

Здравствуйте, gena.

Вы писали 9 июня 2005 г., 15:42:34:

Слассы все а вообще если после имени переменной поставить точку, сразу
ясно надо ее инициировать или нет по наличию конструктора(ов) create.

Вообще рекомендуют имена всех типов (классов) начинать с "Т".

А если приспичин написать Var Tems:integer; ? Tems тоже объект?

А други типы, чтож без памяти существуют?

(без комментариев...)

А картинка это объект?

И вообще там написано что create вызывается не напрямую, а как метод
класса?
не VarName.Create;
a VarName:=Classname.Create; ?

Ответить   Thu, 9 Jun 2005 21:36:14 +0600 (#381859)

 

Приветствую

:) ответ очевиден - "нужно инициализировать те типы объектов, которые
нужнаются в инициализации". Как это проверить?
В большинстве случаев можно проверить в самом Delphi даже не компилируя
приложение.

Например нужно проверить типа TMyType.

Пишем

var
my_var : TMyType;
begin
my_var := TMyType

после TMyType ставим точку и жмём Ctrl+Space. Если вылазеет сообщение
"TMyType.Create" то тип должен быть инициализирован.
Но это, повторяюсь, работает не для всех типов. (например для TStream
по-моему будет ошибочно).

вы

Ну это несложный вопрос: T означает Type т.е. тип данных. В принципе если ты
не напишешь букву T при объявлении типа, а напишешь например:
MyPoint=packed record
x, y : integer;
end;
то ошибки никакой не будет. Просто буква T перед объявлением типа, это
негласное соглашение м.у. программистами.
Ну например ещё одним таким соглашением является многострадальная переменная
"i", которая участвует в циклах.
Да и вобще буква T очень удобна. Например назовёшь свой юнит, скажем,
"SoundEngine", а потом станешь объявлять новый тип данных, который тоже
называется SoundEngine, так вот чтобы было различие, и компилятор не ругался
лучше всего ставить букву T перед объявлением этого типа. Так и тебе будет
понятно и компилятору.

С уважением, Lakmus
ICQ: 241479153
http://lakmus.nudl.net

Номер выпуска : 4617
Возраст листа : 628 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/382035
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Thu, 9 Jun 2005 16:26:23 +0400 (#382035)

 

Хаю ду ю ду Lakmus?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

Ну почему же негласное?

Венгерская нотация, вроде этим заведует.

Ответить   Fri, 10 Jun 2005 12:42:29 +0500 (#382164)