Bitové pole jako třída I.
Na základě bitového pole z minulého zadání vytvořte třítu TBP pro práci s bitovým pole.
Napište konstruktory a destruktory pro třídu bitové pole.
Návod (pokud víte jak, nemusíte se držet dále napsaného, napište třídu tak aby v programu mohly být použity příkazy, které jsou dále vyznačeny tučně):
Konstruktor je první metoda volaná na objekt po jeho vytvoření. Volá ho automaticky překladač. Je nutné stanovit, jak bude prvek vznikat, a co se při tom bude dít.
objekt vznikne bez parametrů – je použito je-li v programu definice proměnné: TBP aa; - v tomto případě vytvoříme bitové pole s délkou 64 bitů
objekt vznikne na základě objektu stejného typu – kopykonstruktor – je použito při definici proměnné TBP bb=aa, cc(aa); - vytvoří se kopie, včetně kopie dynamických dat (je nutné naalokovat paměť pro druhý prvek)
objekt vznikne na základě celočíselné hodnoty – je použito při definici proměnné TBP dd = 100, ee (121); - vytvoří pole o daném počtu nulových bitů
objekt vznikne na základě dvou hodnot – je použito při definici proměnné TBP ff(33,1), gg(44,0); - vytvoří pole o daném počtu bitů, které nastaví na 0 nebo na 1
objekt vznikne na základě řetězce nul a jedniček – je použito při definici proměnné TBP hh = “1011101000001000101010000010001010 … 0000101“ - vytvoří se pole příslušné délky a naplní se zadanými bitovými hodnotami
Při volání konstruktorů zkuste tisknout text, co se právě volá.
Destruktor je poslední metoda, která se na objekt volá před jeho zrušením.
Do destruktoru napište text, že se právě ruší objekt.
Pozn.:
Zvolte vhodná data a napište je do části private. Metody pro práci s daty, napište do části public.
Třídu (zatím) vytvářejte v hlavičkovém souboru.
Zkuste trasovat program, abyste věděli, kdy se volá který konstruktor, a kdy se volá destruktor.
Vzor Komplex:
class Komplex {
private:
double Re, Im;
// skrytá funkce volaná pouze z funkcí třídy
void Pom (void) {if ((Re < 0) && (Im < 0)) printf(“Pom – záporné čísla\n“);}
public:
// konstruktory
Komplex(void) {Re = Im = 0;printf(“konstruktor void \n“); Pom();}
Komplex(double i) {Re = i; Im = 0;printf(“konstruktor double \n“);Pom();}
Komplex (char *ch) {… printf(“konstruktor řetězec\n“);Pom();}
Komplex (int i, int j) { … printf(“konstruktor dva parametry\n“);Pom();}
Komplex (Komplex const &p) {Re = p.Re; Im = p.Im; printf(“kopykonstruktor \n“);Pom();}
// destruktor
~Komplex(void) {printf(“destruktor\n“);}
};
program
#include „hlavicka_komplex“
{
Komplex a, b(3),c=“sdfaasd“;
}
Při problémech zkuste texty přednášek, nebo pošlete mail. Tento soubor budu průběžně doplňovat.
Poslední úpravy 2005-11-14