Правильно ли я понимаю что переменная типа 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;