как работать с Operator
Участников: 3
Страница 1 из 1
как работать с Operator
привет. вот у меня ко всем такой вопрос. что такое оператор? да я знаю что такое оператор, но во FreeBasic, появилась такая штука для их изменения. вобщем как работать с оператором "operator. я пока не доконца это понимаю, и вот вам пример из мануала. вообще если кто-то с этим разобрался, пора написать главу про операторы в онлайн книгу.
код
Type T
value As Double
Declare Constructor( ByVal x As Double = 0 )
Declare Operator += ( ByVal x As Double )
Declare Operator For()
Declare Operator Step()
Declare Operator Next( ByRef cond As T ) As Integer
Declare Operator Cast() As String
End Type
Constructor T ( ByVal x As Double )
value = x
End Constructor
Operator <= ( ByRef lhs As T, ByRef rhs As T ) As Integer
Operator = ( lhs.value <= rhs.value )
End Operator
Operator T.+= ( ByVal x As Double )
value += x
End Operator
Operator T.for()
End Operator
Operator T.step()
This += 1
End Operator
Operator T.next( ByRef cond As T ) As Integer
Operator = ( This <= cond )
End Operator
Operator T.cast() As String
Operator = Str( value )
End Operator
'' Example Usage
For i As T = 1 To 10
Print i
Next i
код
Type T
value As Double
Declare Constructor( ByVal x As Double = 0 )
Declare Operator += ( ByVal x As Double )
Declare Operator For()
Declare Operator Step()
Declare Operator Next( ByRef cond As T ) As Integer
Declare Operator Cast() As String
End Type
Constructor T ( ByVal x As Double )
value = x
End Constructor
Operator <= ( ByRef lhs As T, ByRef rhs As T ) As Integer
Operator = ( lhs.value <= rhs.value )
End Operator
Operator T.+= ( ByVal x As Double )
value += x
End Operator
Operator T.for()
End Operator
Operator T.step()
This += 1
End Operator
Operator T.next( ByRef cond As T ) As Integer
Operator = ( This <= cond )
End Operator
Operator T.cast() As String
Operator = Str( value )
End Operator
'' Example Usage
For i As T = 1 To 10
Print i
Next i
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: как работать с Operator
В двух словах - инструкция оператор позволяет переопределить функционал стандартного оператора - заставить его делать нечтто другое. Это аналог перегрузки функции.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: как работать с Operator
Электрик, обрати внимание на то, что пример описывает "класс" или "пользовательский тип" что в нашем случае одно и тоже.
Где-то на офсайте видел класс для работы с булевыми данными. Там очень ярко и наглядно была показана работа с операторами, и то что она даёт.
А, вот и ссылочка.
Boolean Type by Imortis
Очень оригинальный подход и можно почерпнуть много интересного.
Сам я не работал и подробнее сказать не могу. Раздел в книге нужен, это да.
Если кто разберёться, киньте мне, я его добавлю в главу про процедуры и функции.
Где-то на офсайте видел класс для работы с булевыми данными. Там очень ярко и наглядно была показана работа с операторами, и то что она даёт.
А, вот и ссылочка.
Boolean Type by Imortis
Очень оригинальный подход и можно почерпнуть много интересного.
Сам я не работал и подробнее сказать не могу. Раздел в книге нужен, это да.
Если кто разберёться, киньте мне, я его добавлю в главу про процедуры и функции.
Re: как работать с Operator
короче говоря, я так понял, что можно и обойтись без переопределения операторов, покрайней мере пока в моих программах это не является острой необходимостью. да и как-то громоздко все, пока я не смотрел исходники ассемблера, но мне кажется, что в бинарник пехается много не нужного.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|