Показать сообщение отдельно
Старый 19.02.2011, 23:37   #55
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,356
Написано 2,472 полезных сообщений
(для 6,854 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Функции внутри типа это обычные функции, только они ещё имеют быстрый доступ к внутренним глобальным переменным внутри типа.
Type Foo
  
Global Bar:Int 0
  
Function IncBar()
    
Bar:+1
  End 
Function
EndType

Foo
.Bar 1
Foo
.IncBar()
Foo.IncBar()

Print 
Foo.Bar 'выдаёт 3 
Методы вызываются непосредственно для экземпляра типа.
Псевдокод:
Type Мужык
   Field x
:int 0
   Field y
:int 0

   Method ИдиВверх
()
     
y:-1
   EndMethod
   Method ИдиВниз
()
     
y:+1
   EndMethod

   Method ИдиВЛево
()
     
x:-1
   EndMethod
   Method ИдиВПраво
()
     
x:+1
   EndMethod
EndType


Local SuperHero
:Мужык = New Мужык
SuperHero
.ИдиВниз()
SuperHero.ИдиВниз()
SuperHero.ИдиВниз()
SuperHero.ИдиВЛево()
SuperHero.ИдиВЛево()

Print 
SuperHero." , " SuperHero.' выдаёт -2 , 3 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (20.02.2011)