/* jasenet.h */ /* Kerho-ohjelman jäsenet-luokan määrittely. ** ** Tekijät: Vesa Lappalainen ** Tehty: 20.1.1997 ** Muutettu ** Mitä muutettu: ** */ #ifndef __JASENET_H #define __JASENET_H #include using namespace std; #include "jasen.h" //---------------------------------------------------------------------------- // Vakiota //---------------------------------------------------------------------------- #define MAX_JASENIA 5 //---------------------------------------------------------------------------- // Jäsenistön määrittely: //---------------------------------------------------------------------------- class cJasenet { int max_lkm; int lkm; int muutettu; string tiedoston_nimi; string bak_nimi; string koko_nimi; cJasen apualkio; cJasen **alkiot; void poista_kaikki() { poista_alkiot(); poista_taulukko(); } void poista_alkiot(); void poista_taulukko(); string luo_taulukko(int koko=MAX_JASENIA); void alusta() { koko_nimi = ""; tiedoston_nimi = ""; max_lkm = 0; lkm = 0; muutettu = 0; } cJasenet(const cJasenet &) {} void operator=(const cJasenet &) {} public: cJasenet(int koko=0) { alusta(); luo_taulukko(koko); } ~cJasenet() { if ( muutettu ) talleta(); poista_kaikki(); } string lisaa(const cJasen &jasen); const cJasen &anna(int i) const { if ( i < 0 || lkm <= i ) return apualkio; return *alkiot[i]; } string lue_tiedostosta(const string &tied); string talleta(); const string &Koko_nimi() const { return koko_nimi; } int Lkm() const { return lkm; } const string &Tiedoston_nimi() const { return tiedoston_nimi; } const string &Bak_nimi() const { return bak_nimi; } int TeeBak(const string &bak_tark) { bak_nimi = bak_tark; return 0; } }; #endif