Vyvýjím konzolovou aplikaci pro správu skladu a nevím, zda mám pro jednotlivé zboží ve skladu umístěné zvolit struct, nebo class.
Sklad mám standardně nadefinovaný jako class, s víceméně touto definicí:
class Sklad {
private:
int pocetDruhu_;
int pocetCelkem_;
double cenaCelkem_;
set<Zbozi>obsah;
public:
// metody
};
Kromě standardních konstruktorů a destruktorů do metod spadají i metody pro vklad zboží na Sklad, odběr zboží ze Skladu, výpis celého skladu, eventuálně výpis pouze detailu konkrétního zboží.
Aktuálně mám Zboží definováno následovně:
class Zbozi {
private:
int identifikacniCislo_;
string nazev_;
int pocetKs_;
double cenaZaJeden_;
double cenaCelkem_;
public:
// metody
};
Objekt Zbozi nesmí mít záporný počet kusů, zápornou cenu za jeden kus, ani záporné ID (na základě ID probíhá vkládání do set<Zbozi>obsah). Vzhledem k tomu, že mám určitá integritní omezení (co se IČ, ceny, počtu kusů týče), zvolil jsem pro objekt Zbozi class, nicméně nevím, zda nemá smysl nepoužít struct a pro správu objektů používat třídu Sklad (což mně přišlo jako nesmysl, protože struct má defaultně nastavené objekty jako public a kdybych je převedl na private, můžu už rovnou použít normálně class).
Je nějaký vážný důvod, proč by v mém případě struct měla být preferována přes class, nebo na tom až tak moc nezáleží a mohu nechat kód jak ho mám?