Показать сообщение отдельно
Старый 30.03.2009, 22:36   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

В BlitzMAX в отличие от B3d "правильные" типы, они скорее уже классы.
Type Class_Name 'называем наш тип/класс
    Field object_var:String ' поле, тип переменной String
    Global gvar:Int 'общая для всех объектов этого типа переменная

    Function GetGvar:Int() 'статическая функция, т.е. оступна по имени типа/ класса
        return gval              'например так: Class_Name.GetGval()
    End function

    Method GetField:String() 'метод класса, доступен только посредством объекта,
        'имеет прямой доступ к полям класса относящимся к текущему объекту.
        ' например: Local g:Class_Name=new Class_Name; g.GetField()
        return object_var
    End function

    'есть 2 уникальных метода New и Delete
    'New - конструктор этот метод если он есть вызывается автоматически при создании нового объекта этого типа.
    'Delete - деструктор, вызывается автоматически при удалении из памяти объекта этого типа
End type 'завершаем
'переменные нашего типа создаются с помощью ключевого слова New:
Local obj:MyType=new MyType 'дословно: создать новую локальную переменную типа MyType. При это для этой переменной будет вызван метод New если он есть.

Удаление переменной:
obj=Null

------
А теперь о методах хзранения полученых переменных, независимо от типа, наш ли он или встроеный, переменные можно хранить в:
* Единичной переменной ( Local a:int=15 или Local obj:MyType=new MyType)
* В массиве: Local a:int[]=new int[100] или Local obj:MyType[]=new MyType[100]
* В кольцевом списке: Local list:TList=new TList; list.AddLast("Hello")
* В индексированом списке: Local dict:TMap=New TMap; dict.Insert(obj, "First")
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
G.A.D (31.03.2009), Данил (30.03.2009)