Вниз
Скачать: CL | DM;

как получить указатель на экземпляр класса   Найти похожие ветки 

← →
HRustBB   (2010-06-12 02:25) [0]

как получить указатель на экземпляр класса внутри одного из методов этого класса. @self не помогает


← →
Германн ©   (2010-06-12 02:31) [1]


> как получить указатель на экземпляр класса внутри одного
> из методов этого класса.

А нафига!?
Методы и так работают "внутри экземпляра" за несколькими исключениями, типа классовых.


← →
Palladin ©   (2010-06-12 03:06) [2]

Self это и есть указатель на экземпляр, без @


← →
HRustBB   (2010-06-12 14:54) [3]


> Self это и есть указатель на экземпляр, без @


тобеж @self получается указатель на указатель?


← →
{RASkov} ©   (2010-06-12 15:00) [4]

> [3] HRustBB   (12.06.10 14:54)

@+F1... будет адрес "указателя(переменной)" self...


← →
RWolf ©   (2010-06-12 15:05) [5]

В Delphi любая переменная-экземпляр класса есть указатель. В том числе Self.


← →
HRustBB   (2010-06-12 15:06) [6]


> А нафига!?


Задача такая: есть объект класса А, который инкапсулирует в себе свойство: массив объектов класса Б. Так вот. Нужно внутри методов каждого объекта класса Б иметь доступ к методам объекта класса А, для этого каждому объекту Б нужно сообщить (в конструкторе или еще какнибудь) указатель на контейнер (на тот самый объект класса А). Вот както так.


← →
HRustBB   (2010-06-12 15:09) [7]


> В Delphi любая переменная-экземпляр класса есть указатель.
>  В том числе Self.

Тоесть

var p:Pointer;
begin
p:=self;
end;

будет правильно?


← →
RWolf ©   (2010-06-12 15:11) [8]

p:=pointer(self);


← →
RWolf ©   (2010-06-12 15:14) [9]


> каждому объекту Б нужно сообщить (в конструкторе или еще
> какнибудь) указатель на контейнер

Для этого совершенно необязательно приводить Self к Pointer.
Constructor TB.Create(AContainer:TObject);
begin
 FContainer:=AContainer;
end;


← →
RWolf ©   (2010-06-12 15:20) [10]

class TB
private
 FContainer:TObject;
end;


← →
HRustBB   (2010-06-12 17:20) [11]


> RWolf ©   (12.06.10 15:20) [10]


тоже вариант



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
2-1276275861
NoSilence
2010-06-11 21:04
2010.09.12
Хуки


15-1276679561
vajo
2010-06-16 13:12
2010.09.12
диски для raid


15-1276348839
Дмитрий С
2010-06-12 17:20
2010.09.12
Помогите рассчитать сопротивление.


15-1276599769
12
2010-06-15 15:02
2010.09.12
mssql триггер, совсем забыл :(. Так правильно будет?


2-1276497223
tippa
2010-06-14 10:33
2010.09.12
про 2 потока и общий стринглист




   Наверх