Показать сообщение отдельно
  #1  
Старый 27.08.2022, 18:13
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию Указатель на объект

Правильно ли я понимаю что переменная типа TObject или его наследников, это всегда указатель, про который компилятору (ну или кому там) не нужно объяснять что это указатель ('^', '@' - вот это вот все) . И сам объект существует (если конечно он был создан) независимо от того сколько указателей на него существует.
Ну т.е. в практическом плане:
Код:
  TPart = class (TObject)
  private
    FName: string;
    FRemainder: Word;
  public
    property Name: string read FName write FName;
    property Remainder: Word read FRemainder write FRemainder;
  end;

  TPartsArray = array of TPart;

  TProduct = class(TObject)
  private
    FName: string;
    FPartList: TPartsArray ;
  public
    property Name: string read FName write FName;
    property PartList: TPartList read FPartList write FPartList;
  end;
могу ли я создавая кучу экземпляров TProduct, в конструкторе или в каком методе, сделать так (массив ведь это же тоже указатель, на первый элемент)
Код:
constructor TProduct.Create(AParts: TPartsArray);
begin
  .....  
  FPartList[someIndex]:= AParts[anotherIndex];
end;
т.е. такое обращение будет обращением к одним и тем же данным в памяти
Код:
MyProduct1: TProduct;
AllParts: TPartsArray;
...
MyProduct1.PartList[i].Name;
AllParts[j].Name;
Ответить с цитированием