powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Надо ли явно инициализировать статические переменные класса?
6 сообщений из 6, страница 1 из 1
Надо ли явно инициализировать статические переменные класса?
    #39797698
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть такой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
 TMyClass = class
   private
    class var ID: Integer;
   public
    constructor Create;
 end;
...

constructor TMyClass.Create;
begin
 Inc(ID);
end;


то надо ли для него добавлять?
Код: pascal
1.
2.
initialization
 TMyClass.ID := 0;
...
Рейтинг: 0 / 0
Надо ли явно инициализировать статические переменные класса?
    #39797706
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ,

Глобальные переменные, согласно документации, всегда инициализируются. Переменные класса - это, фактически, глобальные переменные. Однако, документация ничего не говорит относительно переменных класса.
...
Рейтинг: 0 / 0
Надо ли явно инициализировать статические переменные класса?
    #39797708
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъЕсли есть такой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
 TMyClass = class
   private
    class var ID: Integer;
   public
    constructor Create;
 end;
...

constructor TMyClass.Create;
begin
 Inc(ID);
end;


то надо ли для него добавлять?
Код: pascal
1.
2.
initialization
 TMyClass.ID := 0;


Если 0, nil, пустая строка и т.п. - не нужно явно инициализировать.

Если нужна какая-то особенная инициализация - используй static constructor's.
То же самое, что initialization, просто kjв другом месте.


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
type
 TMyClass = class
   private
    class var ID: Integer;
   public
    constructor Create;
    class constructor StaticCreate;
 end;
...

constructor TMyClass.Create;
begin
 Inc(ID);
end;
...
Рейтинг: 0 / 0
Надо ли явно инициализировать статические переменные класса?
    #39797731
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как по мне, удобно потом читать код где все четко и явно и нет никаких неявных вещей.

Кстати могли бы и добавить инициализацию в объявлении, чтобы компилятор мог сразу сгенерить что надо. Опять в QC

class var ID: Integer = 1;
...
Рейтинг: 0 / 0
Надо ли явно инициализировать статические переменные класса?
    #39797866
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite я именно так и хотел, но компилятор мне этого не позволил, а потому через инициализацию. Возможно в D2010, в ктором я это пишу, нет такого функционала.
...
Рейтинг: 0 / 0
Надо ли явно инициализировать статические переменные класса?
    #39797877
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Страдалецъ,

нельзя. Это слишком слооожна для компилятора
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Надо ли явно инициализировать статические переменные класса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]