Klasa tablica bitow

0

Ogólna treść zadania brzmi (bez wgłebiania się w funkcje) Zdefiniuj klasę tab_bit reprezentującą tablicę bitów.
Ma ona zawierać:

class tab_bit
{ typedef unsigned long long slowo; // komorka w tablicy
static const int rozmiarSlowa; // rozmiar slowa w bitach
class ref; // klasa pomocnicza dla operatora indeksowania
protected:
int dl; // liczba bitów
slowo *tab; // tablica bitów
//Konstruktory i funkcje składowe}

//Klasa ref jest klasą pomocniczą, której zadaniem jest zaadresowanie pojedynczego bitu w tablicy
Wiem że deklaracja

slowo i:2; 

tworzy mi 2 bity, ja jednak mam narzucony z góry rozmiar każdej komórki w tablicy(tak rozumiem treść, że jest to static const int rozmiarSlowa), więc pytanie brzmi jak powinna wyglądać deklaracja w konstruktorze takiej tablicy?

tab_bit::tab_bit(int rozmiar): dl(rozmiar)
{
tab = new slowo[dl]:rozmiarSlowa}

Wygląda brzydko i oczywiście jest błedny. Może powinienem skorzystać z tej klasy pomocniczej?
Jakieś rozwiązania?

0
class tab_bit
  {
   typedef unsigned long long slowo; // komorka w tablicy
   protected:
   size_t size; // liczba bitów
   slowo *tb; // tablica bitów
   public:
   tab_bit(size_t size):size(size),tb(new slowo[(dl+8*sizeof(slowo)-1)/(8*sizeof(slowo))]) {}
  };

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