
О... ещё вопр... а можно переменные объявлять с начальными значениями, как в С++? Например Public b As New DX = NULL?

Как зачем?GSerg писал(а):Нет (а зачем?) и нет (все в ноль).
Vovik писал(а):Можно ли как-нть отследить сколько раз объявляется переменная с типом моего класса? Мне б как-нть запретить это дело.:
Vovik писал(а):О... ещё вопр... а можно переменные объявлять с начальными значениями, как в С++? Например Public b As New DX = NULL?
oNew = ClassFactory(constMyObject)
sanches писал(а):так это ты про .НЕТ?
oNew = ClassFactory(constMyObject)
Private Function IIntegrationBuilder_GetIntegrationRules() As classIntegrationRule
Set oRule = New classIntegrationRule
oRule.Groups.Add 0, "Договор"
oRule.Groups.Add 0, "Приложение"
oRule.InSignalsGroups.Add "Договор", "2"
oRule.InSignalsGroups.Add "Договор", "14"
oRule.InSignalsGroups.Add "Приложение", "4"
oRule.InSignalsGroups.Add "Приложение", "5"
Set IIntegrationBuilder_GetIntegrationRules = oRule
End Function
Set oRule = oBuilder.GetIntegrationRules
Konst_One писал(а):В VB это назвается имплементацией и использовать можно с замечательным словом Implements Class1, например, в заголовке Class2 будет обозначать наследование всех описателей класса 1
Konst_One писал(а):В VB это назвается имплементацией и использовать можно с замечательным словом Implements Class1, например, в заголовке Class2 будет обозначать наследование всех описателей класса 1
Konst_One писал(а):2 codemaster Это как рассмаривать. ты рассматриваешь это с точки зрения java/c , а в VB - Implements именно для того, о чем спрашивал первый товарищ. чтобы можно было создать класс на основе другого
Fedorfx писал(а):
Имплементация
фабрика классов
Fedorfx писал(а):
с наследованием
Fedorfx писал(а):Вообще интерисуют красивые примеры.
'Class1
public property Get MyProperty() as string
MyProperty="myproperty"
end property
'Class2
Implements Class1
public property Get MyProperty() as string
'
end property
public Property Get MyPropertyNext() as long
MyPropertyNext=2
end property
Dim dd(1000) as double
dd(0)=1
CopyMemory dd(1), dd(0), ubound(dd)*4
dd(0)=2
Konst_One писал(а):Могу не согласиться. Как раз я могу создать класс на основе своего другого класса и это и будет полиморфизм. Но я ничего не знаю о так называемом наследовании реализации.
'------------Class 1------------
Public Function GetName() As String
GetName = "Class1"
End Function
Private Sub Class_Terminate()
Debug.Print "Class1_Terminate "
End Sub
'------------Class 2------------
Public Function GetName() As String
GetName = "Class2"
End Function
Private Sub Class_Terminate()
Debug.Print "Class2_Terminate "
End Sub
'-------- тест----------
Private Sub pTest()
Dim i As Integer
Dim objArr(1) As Object
'
Set objArr(0) = New Class1
Set objArr(1) = New Class2
'
For i = 0 To UBound(objArr)
' собственно полиморфизм
Debug.Print objArr(i).GetName
Next i
'<-- попоробуйте закомент. Erase objArr и см.
'Class_Terminate классов
Erase objArr
'
End Sub
Class1
Class2
Class1_Terminate
Class2_Terminate
Class1
Class2
Class1_Terminate
Class2_Terminate
GSerg писал(а):Замечания:
Зачем комментировать erase?
С ним:
- Код: Выделить всё
Class1
Class2
Class1_Terminate
Class2_Terminate
Без него:
- Код: Выделить всё
Class1
Class2
Class1_Terminate
Class2_Terminate
Критика:
Это не полиморфизм. Это два абсолютно не связанных объекта, которые абсолютно случайно имеют методы, называющиеся одинаково.
sanches писал(а):странно, у меня есть книжка от Microsoft. Про Implements там все сказано и вообще про ООП там есть, но никих упоминаний о какой-то фабрике.
sanches писал(а):И я кстати так и не понял, что же это за зверь такой и чем он лучше имплемента? (зы Вопрос немного корявый, но суть в этом)
codemaster писал(а):
Ну что поговорим о IDispatch , vTable раннем и позднем связывании !!!! ????
'Зачем комментировать erase?
смотрим где возникает ClassX_Terminate
P.S. Берем книгу и читаем определение полиморфизма.
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 26