implementacja buforu

0

Witam, mam do zrobienia takie oto zadanie:

//Zaprogramuj jako klasę generyczną skończony bufor (rozmiar jest zadawany
w konstruktorze) przechowujący elementy typu zadanego jako parametr klasy. Dodawanie
elementu powinno być za pomocą operatora ”+”, a wartością wyrażenia bufor + element
powinna być wartość logiczna wskazująca że powiodło się dodanie do bufora.
Pobranie elementu powinno być zaprogramowane jako właściwość. Efektem ubocznym
pobrania powinno być usunięcie elementu z bufora. W przypadku pobrania elementu z pustego
bufora program powinien drukować komunikat i zwracać jakąś domyślną wartość.//

Mój kod wygląda na razie tak:

class Bufor<T>
    {
        public static int rozmiar;
        public static int indeks;
        public T[] buf;

        public Bufor(int rozm)
        {
            rozmiar = rozm;
            buf = new T[rozm];
        }

        public static bool operator +(Bufor<T> B, T Element)
        {
            if (indeks < rozmiar)
            {
                indeks++;
                B.buf[indeks] = Element;
                return true;
            }

            else
            {
                return false;
            }
        }
    }

I teraz nie wiem jak mam używać tego + jako dodawanie elementów do bufora. Do programu muszę także dołączyć moduł korzystający z bufora i nie wiem jak za pomocą tego operatora + zdefiniowanego przeze mnie się odwołać, w celu dodania elementów.

Dzięki z góry za pomoc ;)

1

@autor - żeby dodać coś do bufora przez operator piszesz po prostu

bufor += 2; (zakładając że bufor to Bufor<int>)
Nie wiem, o to Ci właściwie chodziło? :)

Pobranie elementu powinno być zaprogramowane jako właściwość. Efektem ubocznym
pobrania powinno być usunięcie elementu z bufora.

Terroryzm... Efekty oboczne we właściwościach to najlepsza droga do strzelenia odstrzelenia sobie stopy...

No ale...

public T Pobierz
{ get { /* i tutaj kod zależnie od tego czy ma być pobierana i usuwana pierwsza czy ostatnia wartość - nie podałeś więc nie mogę pomóc :) */ } }
0
arek686451990 napisał(a)

a wartością wyrażenia bufor + element powinna być wartość logiczna wskazująca że powiodło się dodanie do bufora.

więc

MSM napisał(a)

bufor += 2; (zakładając że bufor to Bufor<int>)

chyba nie może tak być

Implementacja wg zadania dobrze. Użyć
Bufor<int> buf = new Bufor<int>(5);
bool isSuccessful0= buf + 3;
bool isSuccessful1= buf + 2;
bool isSuccessful2= buf + 7;
bool isSuccessful3= buf + 1;
bool isSuccessful4= buf + 5;
bool isSuccessful5= buf + 9;

0-4 powinny być true
5 - będzie false

1 użytkowników online, w tym zalogowanych: 0, gości: 1