Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Указатель на самого себя.


Страницы:   1 2 3

@!!ex ©   (2007-10-10 16:14:00) 

Как можно получить в методе класса указатель на экземпляр для которого этот метод вызван?


Ins   (2007-10-10 20:32:00) [1]


> А где это?

Да какая разница ;-) Не будем оффтопить.


oxffff   (2007-10-10 20:24:00) [2]


> Ins ©   (10.10.07 20:20) [50]
>
> > Я думаю любая дисскусия приводит не только к
> > разбитому лбу некоторых участников, доказывающих свою
> правоту
> > или пены изо рта.
> > Мы все учимся. И это хорошо!!!
>
> Это все действительно хорошо, пока дискуссия не выходит
> за рамки предмета. А вот когда аргументы становятся в духе
> "сам дурак" - ничего в ней хорошего нет.


А где это?


Ins   (2007-10-10 20:20:00) [3]


> Я думаю любая дисскусия приводит не только к
> разбитому лбу некоторых участников, доказывающих свою правоту
> или пены изо рта.
> Мы все учимся. И это хорошо!!!

Это все действительно хорошо, пока дискуссия не выходит за рамки предмета. А вот когда аргументы становятся в духе "сам дурак" - ничего в ней хорошего нет.


oxffff   (2007-10-10 20:04:00) [4]


> Ins ©   (10.10.07 19:59) [47]
>
> > А другая часть?
>
> См. [44]. Вы под RTTI подразумеваете то же, что и я. Если
> под RTTI подразумевать то же, что и Юрий, то "другая" часть
> есть.


Я имел ввиду другую часть
кто вставляет? не компилятор ли?
и где она храниться? Не в памяти ли?

Это к вопросу о формулировке предложения.
Юрий, простите конечно.


oxffff   (2007-10-10 20:01:00) [5]


> Ins ©   (10.10.07 19:52) [44]
>
> > [41] oxffff ©   (10.10.07 19:45)
>
> Из моего следует лишь то, что я просто не хочу спорить о
> терминах. Я уже имел печальный опыт, никчему такие споры
> не приводят. Если интересно мое мнение - то для меня RTTI
> - это информация о типах, доступная во время выполнения.
>  Именно сама информация. Юрий под RTTI подразумевает механизм
> получения информации о типах времени выполнения.


Я думаю любая дисскусия приводит не только к
разбитому лбу некоторых участников, доказывающих свою правоту или пены изо рта.
Мы всеучимся. И это хорошо!!!
:)


Ins   (2007-10-10 19:59:00) [6]


> А другая часть?

См. [44]. Вы под RTTI подразумеваете то же, что и я. Если под RTTI подразумевать то же, что и Юрий, то "другая" часть есть.


oxffff   (2007-10-10 19:57:00) [7]


> oxffff ©   (10.10.07 19:56) [45]
>
> > Юрий Зотов ©   (10.10.07 19:51) [42]
> > > oxffff ©   (10.10.07 19:45) [41]
> >
> > Мои (и не только мои) утверждения, прежде всего, надо
> читать.
> >  Причем не выборочно и в контексте.
>
>
> Извиняюсь, я не прав.
> Тысячу извинений, простите.


Хотя как тогда объяснить

> Та
> часть, которая генерится компилятором и представляет собой
> реально расположенные в памяти данные.

А другая часть?


oxffff   (2007-10-10 19:56:00) [8]


> Юрий Зотов ©   (10.10.07 19:51) [42]
> > oxffff ©   (10.10.07 19:45) [41]
>
> Мои (и не только мои) утверждения, прежде всего, надо читать.
>  Причем не выборочно и в контексте.


Извиняюсь, я не прав.
Тысячу извинений, простите.


Ins   (2007-10-10 19:52:00) [9]


> [41] oxffff ©   (10.10.07 19:45)

Из моего следует лишь то, что я просто не хочу спорить о терминах. Я уже имел печальный опыт, никчему такие споры не приводят. Если интересно мое мнение - то для меня RTTI - это информацияо типах, доступная во время выполнения. Именно сама информация. Юрий под RTTI подразумевает механизмполучения информации о типах времени выполнения.


oxffff   (2007-10-10 19:51:00) [10]


> oxffff ©   (10.10.07 19:35) [38]
>
> > Инс ©   (10.10.07 19:15) [35]
> >
> > > [34] Юрий Зотов ©   (10.10.07 19:03)
> >
> > Я подразумевал то, что возвращает функция TypeInfo. В
> справке
> > так и написано:
> > Returns a pointer to compiler-generated runtime type information
>
> > for a type identifier
>
>
> Typeinfo - это семантика копирования и финализации типа.
>


Не, некорректно я выразился.
typeInfo cодержит информацию для копирования и финализации типа.


Юрий Зотов   (2007-10-10 19:51:00) [11]

> oxffff ©   (10.10.07 19:45) [41]

Мои (и не только мои) утверждения, прежде всего, надо читать. Причем не выборочно и в контексте.


oxffff   (2007-10-10 19:45:00) [12]


> Юрий Зотов ©   (10.10.07 19:33) [37]
> > Инс ©   (10.10.07 19:15) [35]
>
> Сompiler-generated RTTI - это тоже только часть RTTI. Та
> часть, которая генерится компилятором и представляет собой
> реально расположенные в памяти данные. Естественно, они
> имеют адрес, но этот адрес с VMT, конечно же, не совпадает
> (да и какая может быть VMT для необъектных типов?).


Из вашего утверждения следует, что есть часть RTTI, которая генерируется не компилятором. Из воздуха? :)


Ins   (2007-10-10 19:44:00) [13]


> New

скорее правда это процедура... (это чтобы вы меня не поправляли) :)


Ins   (2007-10-10 19:42:00) [14]


> Сompiler-generated RTTI - это тоже только часть RTTI.

Хорошо, пусть будет так. Значит говоря RTTI, я подразумевал ту RTTI, которая являются частью другой "большой" RTTI. Может быть есть еще какая-то "третья" RTTI, но лучше мне о ней не знать :) Кому надо - тот меня понял. В любом случае я был неточен, поправился (точнее меня поправили), и на этом можно и остановится.


> Более того, TypeInfo даже и не функция, как таковая.

Да, если можно так выразится, это "встроенная в компилятор функция", также как и Swap, New, SizeOf и некоторые другие. И что из этого?


oxffff   (2007-10-10 19:35:00) [15]


> Инс ©   (10.10.07 19:15) [35]
>
> > [34] Юрий Зотов ©   (10.10.07 19:03)
>
> Я подразумевал то, что возвращает функция TypeInfo. В справке
> так и написано:
> Returns a pointer to compiler-generated runtime type information
> for a type identifier


Typeinfo - это семантика копирования и финализации типа.


Юрий Зотов   (2007-10-10 19:33:00) [16]

> Инс ©   (10.10.07 19:15) [35]

Сompiler-generated RTTI - это тоже только частьRTTI. Та часть, которая генерится компилятором и представляет собой реально расположенные в памяти данные. Естественно, они имеют адрес, но этот адрес с VMT, конечно же, не совпадает (да и какая может быть VMT для необъектных типов?).

Более того, TypeInfo даже и не функция, как таковая. Это, как и SizeOf, выражение, вычисляемое на стадии компиляции и подставляемое в программу в виде уже готового значения. Например, вот на этот код компилятор ругается:

procedure TForm1.FormCreate(Sender: TObject);
begin
 TypeInfo(string)
end;

а на этот - нет:

procedure TForm1.FormCreate(Sender: TObject);
var
 P: Pointer;
begin
 P := TypeInfo(string)
end;


Ins   (2007-10-10 19:18:00) [17]


> [35] Инс ©   (10.10.07 19:15)

Елки-палки, на работе уже привык, что под ником Ins, а дома исправить забыл. Прошу прощения, последнее сообщение - мое, если вдруг это неочевидно.


Инс   (2007-10-10 19:15:00) [18]


> [34] Юрий Зотов ©   (10.10.07 19:03)

Я подразумевал то, что возвращает функция TypeInfo. В справке так и написано:
Returns a pointerto compiler-generated runtime type informationfor a type identifier.


Юрий Зотов   (2007-10-10 19:03:00) [19]

> Ins ©   (10.10.07 17:17) [33]

Равны с ЧЕМ?

Указатель на VMT - это понятно. Потому что VMT - это реальная структура данных, которая расположена в памяти и поэтому имеет адрес.

А RTTI адреса не имеет. Потому что RTTI - это не какая-то реальная структура данных, а понятие собирательное. Просто термин, обозначающий некую совокупность данных, регулярных процедур и методов классов, обеспечивающих получение информации о типе на этапе исполнения.

Например, многие методы класса TObject относятся к RTTI, структуры, процедуры и функции из модуля TypInfo - тоже часть RTTI, да и VMT - тоже часть RTTI. И даже операция IS самого языка - тоже часть RTTI.

Поэтому указателя на RTTI в природе не существует. А раз так, то непонятно, как же "они" могут быть равны. Кто это - "они"?


Ins   (2007-10-10 17:17:00) [20]


> oxffff ©   (10.10.07 17:01) [31]

Почему-то считал, что они численно равны, проверил - ошибался.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо