Chcę zaimplementować priorytetową klasę kolejki. Kiedy element jest dodawany z wyższym priorytetem, jest on przesyłany na początek kolejki, zamiast dodawać do końca kolejki.Pytanie dziedziczące z listy (z T) klasy
Proste kilka wierszy kodu
Public Class PriorityQueue(Of T)
Inherits List(Of T)
Private _list As New List(Of T)
Public Sub Enque(ByVal item As T, Optional ByVal pushToFront As Boolean = False)
If pushToFront = True Then
_list.Insert(0, item)
Else
_list.Add(item)
End If
End Sub
Public Function Deque() As T
If _list.Count <> 0 Then
Dim item As T = _list(0)
_list.RemoveAt(0)
Return item
Else
Throw New InvalidOperationException
End If
End Function
End Class
Teraz funkcja powołanie próbuje znaleźć elementy w kolejce więc ....
dim _q as new PriorityQueue(Of integer)
_q.Enque(1)
_q.Enque(2)
msgbox(_q.Count())
.....
program wypisuje 0! Jeśli dodasz właściwość Count(), wszystko jest w porządku. Myślałem, że odziedziczona klasa powinna wywoływać funkcję liczenia klasy podstawowej. Zauważ, że liczba pojawia się w intellisense, nawet jeśli nie mam implementacji w klasie pochodnej.
Proszę oznaczyć jako kod: "dim _q jako nowy PriorityQueue (liczby całkowitej) _q.Enque (1) _q.Enque (2) msgbox (_q.Count())" –