![]() |
[classes] доступ к public var из static function
Интересно, а как осуществить доступ к public var из static function этого же класса.
static function вызывается из другого класса. |
никак, только если передать функции ссылку на экземпляр класса. Или сделать так, что функция сама найдет экземпляр своего класса (например при создании все экземпляры записывать в массив)
|
А это не этот же класс. Экземпляры сами по себе, стат. свойства сами по себе.
|
попытался разобраться сам - не получилось.
предлагаю попробовать на примере: есть класс "classes.player": Код:
class classes.playerКод:
class classes.sceneзаранее благодарен. |
Ну для начала классы должны иметь имя Player и Scene, а не player и scene.
Во-вторых, экземпляра класса scene не существует, стат. метод не имеет доступа к свойствам экземпляров классов. И вообще, зачем тут статика? Судя по всему, нужно применять синглтон в данном случае. Т.е. экземпляр scene может быть только один и ссылка на него хранится в статическом свойстве scene. Стат. метод moving использует эту ссылку для изменения переменной в экземпляре scene. |
по первому понятно.
второе: то есть нам нужно завести экземляр класса scene, объявить в этом классе public static var, в котором будет храниться ссылка на экземпляр, и использовать эту ссылку в public static function moving? |
Именно.
При этом экземпляров не может быть более одного. Это и есть синглтон. |
интересно.
немного не по теме: вообще мне приходится сталкиваться с множеством проблем при работе с классами. __etc, мог бы ты порекомендовать какую-нибудь литературу, желательно в электронном виде, по этой тематике? |
Наврядли, потому как у меня подобной вообще нету :)
Ну Мука можно почитать (в бумажном виде)… |
тогда хотелось бы разрешить текущую проблему.
как ссылку на экземпляр класса "scene" запихать в статическое свойство "scene"? точнее откуда её вобще взять эту ссылку? UPD: благодарю, уже разобрался. |
| Часовой пояс GMT +4, время: 13:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.