Как по вложенному классу получить внешний?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как по вложенному классу получить внешний?

Сообщение Иван Шихалев » 02.11.2013 21:20:32

То есть, пусть будет такой код:
Код: Выделить всё
type
  TAlpha = class
     type TBeta = class
     end;
  end;

Можно ли как-то, имея ссылку на TBeta, выйти на TAlpha?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Как по вложенному классу получить внешний?

Сообщение Mikhail » 02.11.2013 21:23:50

Иван Шихалев писал(а):То есть, пусть будет такой код:

Можно ли как-то, имея ссылку на TBeta, выйти на TAlpha?


Штатно, врядли. А зачем, если не секрет?
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Как по вложенному классу получить внешний?

Сообщение Иван Шихалев » 02.11.2013 21:24:36

Для корретной работы с такими классами в ppRuby.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Как по вложенному классу получить внешний?

Сообщение hinst » 04.11.2013 16:22:11

нужно получить внешний класс или экземпляр внешнего класса?
http://www.brpreiss.com/books/opus8/html/page597.html
Note, it is not necessarily the case that an instance of the outer class A exists even when we have created an instance of the inner class. Similarly, instantiating the outer class A does not create any instances of the inner class B.

The methods of a nested class may access the instance attributes of the nested class instance but not of any outer class instance Thus, method f can access the instance attribute @x, but it cannot access the instance attribute @y.
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Как по вложенному классу получить внешний?

Сообщение debi12345 » 04.11.2013 16:37:24

Удалено.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как по вложенному классу получить внешний?

Сообщение Иван Шихалев » 04.11.2013 18:45:55

hinst писал(а):внешний класс или экземпляр внешнего класса?

Сам класс, естественно. И не в Ruby, а в Паскале.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Как по вложенному классу получить внешний?

Сообщение hinst » 04.11.2013 21:07:02

поле ClassName должно содержать полное имя класса, типа TBeta.ClassName = 'TAlpha.TBeta'
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Как по вложенному классу получить внешний?

Сообщение Иван Шихалев » 04.11.2013 21:22:08

Содержит. А как по имени класса получить сам класс?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Как по вложенному классу получить внешний?

Сообщение Sergei I. Gorelkin » 05.11.2013 11:47:14

На уровне языка задача не решается, можно только самостоятельно вносить нужные классы в некий контейнер и потом там искать. Собственно, для наследников TPersistent это уже сделано в виде RegisterClass/FindClass.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru
cron