-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdokument.h
67 lines (54 loc) · 2.43 KB
/
dokument.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef DOKUMENT_H
#define DOKUMENT_H
#include <iostream>
#include <string>
#include "datum.h"
using namespace std;
//konstante radi lakseg rada i preglednosti koda
//postoji sansa da ovo bude abstraktna klasa zbog konkretnih primjera kasnije, za sada nije zbog testiranja
class Dokument
{
public:
//defaultni konstruktor, radi lakseg rada
Dokument();
//konstruktor za inicijalizaciju osnovnih informacija jednog tipa dokumenta
Dokument(string naziv, string kategorija, string* autori, int brojAutora,
string mjestoIzdanja, string* dostupniJezici,
int brojJezika, int godinaIzdanja);
//copy constructor
Dokument(const Dokument& d);
//destruktor, koji ce biti zasluzan za ponistavanje citave knjige, eksplicitan poziv u arhivi, virtualna zbog rada sa pokazivacima i bacanje dokumenata u smece
virtual ~Dokument();
//getteri (Zbog GUI je prvenstveno dodano)
string vratiNaziv() const;
string vratiKategoriju() const;
string* vratiAutore() const; //najvjerovatnije da treba proslijediti parametar neki niz, tako da ne dodje se do konflikta pokazivaca koji pokazuju na istu mem. lokaciju
int vratiBrojAutora() const;
string vratiMjestoIzdanja() const;
int vratiBrojPrimjeraka() const;
string* vratiDostupneJezike() const; //najvjerovatnije da treba proslijediti parametar neki niz, tako da ne dodje se do konflikta pokazivaca koji pokazuju na istu mem. lokaciju
int vratiBrojJezika() const;
//konzolni ispis
virtual void ispis() const; // bitno je da bude virtuelna zbog kasnije niza dokumenata sto cemo imati
virtual void unosPodataka();
Dokument& operator=(const Dokument& d);
protected:
//odnosit ce se na sve dokumente, neovisno da li je u pitanju knjiga, enciklopedija...
static int jedinstveniBarkod;
//svaki dokument ima svoju sifru, tj. barkod
int barkod;
int godinaIzdanja;
string naziv;
string kategorija; //da li je za obrazovanje ili komercijala ili vec sta
string zanr;
//niz autora
string* autori;
int brojAutora;
//zelimo imati mjesto izdanja dokumenta, broj primjeraka tog dokumenta i slicno
string mjestoIzdanja;
int brojPrimjeraka;
//na kojim jezicima je taj dokument dostupan
string* dostupniJezici;
int brojJezika;
};
#endif // DOKUMENT_H