Public Class intComplex
Private iReal As Integer
Private iImage As Integer
Public Sub New()
iReal = 0 : iImage = 0
End Sub
Public Sub New(ByVal r As Integer, ByVal i As Integer)
iReal = r : iImage = i
End Sub
Public Property Real()
Get
Return iReal
End Get
Set(ByVal Value)
iReal = Value
End Set
End Property
Public Property Image()
Get
Return iImage
End Get
Set(ByVal Value)
iImage = Value
End Set
End Property
Public Overrides Function ToString() As String
' тут неважно что...
End Function
е1: Public Shared Operator +(ByVal a As intComplex, _
ByVal b As intComplex) As intComplex
' тут неважно что...
End Operator
End Class
'где-то в модуле...
Dim c As New intComplex(1,2)
Dim c2 As New intComplex(3,4)
Dim c3 As New intComplex
е2: c3 = c + c2
Вопрос про ООП в Vb.net
Потому как примеры в MSDN'е по перегрузке операторов приводятся только для C#, а про VB.NET ничего конкретного не сказано.
ЗЫ: И если можно, дайте ссылку на источник информации, плз
Public Shared Operator +(Boolean a, Boolean b) As Boolean
Dim i As Integer
i=Convert.ToBoolean(Convert.ToInt32(a)+Convert.ToInt32(b))
End Operator
Странно, что ты об этом в MSDN не нашёл. Выбери в Document Explorer'e фильтр Visual Basic и набери operator overloading в поиске.
Цитата:
Originally posted by 3A3-968M
Конечно перегружать можно и в VB.NET:
Public Shared Operator +(Boolean a, Boolean b) As Boolean
Dim i As Integer
i=Convert.ToBoolean(Convert.ToInt32(a)+Convert.ToInt32(b))
End Operator
Странно, что ты об этом в MSDN не нашёл. Выбери в Document Explorer'e фильтр Visual Basic и набери operator overloading в поиске.
Конечно перегружать можно и в VB.NET:
Public Shared Operator +(Boolean a, Boolean b) As Boolean
Dim i As Integer
i=Convert.ToBoolean(Convert.ToInt32(a)+Convert.ToInt32(b))
End Operator
Странно, что ты об этом в MSDN не нашёл. Выбери в Document Explorer'e фильтр Visual Basic и набери operator overloading в поиске.
Спасибо, но так вот как раз в том-то и дело, что не работает этот код!!!
VB ругается сразу на первую строчку и все, до свидания.
Мой VB не понимает слова Operator.
Может, дело в версии Visual Studio? у меня - 2003...
Приведи полный текст ошибки
Цитата:
Originally posted by 3A3-968M
Приведи полный текст ошибки
Приведи полный текст ошибки
Так ведь нету его (текста ошибки)! Я лучше программу приведу, и объясню, как она НЕработает:
Код:
Ошибки выдает на строке е1:
все что после слова Operator подчеркивает и пишет
Цитата:
End of statement expected
На строке e2:
Цитата:
Operator '+' is not defined for types 'ByteClass.intComplex' and 'ByteClass.intComplex'.
Цитата:
Originally posted by Iceman
Может, дело в версии Visual Studio? у меня - 2003...
Может, дело в версии Visual Studio? у меня - 2003...
Все, вопрос можно считать закрытым! Дело в том, что поддержка перегрузки операторов в классах появилась только в Visual Studio 2005. Источник информации - http://www.vbstreets.ru/Articles/66077.aspx
Если ты строишь класс-сумматор комплексных чисел, рекомендую изучить более оптимальный способ хранения мнимой и вещественной части. В твоём примере ты их хранишь отдельно, тогда как можно хранить их вместе. Для этого можно перевести комплексное число в систему исчисления с основанием i или -1+i, и тогда из комплексного числа получишь одно десятеричное. Правда такие системы исчисления не принадлежат множествам из абелевой группы
Цитата:
Originally posted by 3A3-968M
Ща будет оффтоп:)
Если ты строишь класс-сумматор комплексных чисел, рекомендую изучить более оптимальный способ хранения мнимой и вещественной части. В твоём примере ты их хранишь отдельно, тогда как можно хранить их вместе. Для этого можно перевести комплексное число в систему исчисления с основанием i или -1+i, и тогда из комплексного числа получишь одно десятеричное. Правда такие системы исчисления не принадлежат множествам из абелевой группы
Ща будет оффтоп:)
Если ты строишь класс-сумматор комплексных чисел, рекомендую изучить более оптимальный способ хранения мнимой и вещественной части. В твоём примере ты их хранишь отдельно, тогда как можно хранить их вместе. Для этого можно перевести комплексное число в систему исчисления с основанием i или -1+i, и тогда из комплексного числа получишь одно десятеричное. Правда такие системы исчисления не принадлежат множествам из абелевой группы
Спасибо за совет, но класс комплексных чисел приведен был просто для примера.
А где можно подробнее прочитать(изучить) про такой интересный способ хранения комплексных чисел?
Ну, например, у Д. Кнута в книге "Искусство программирования" или в книге Г. Уоррен "Алгоритмические трюки"