class owoc
{
protected:
string rodzaj;
string kraj;
int cena;
public:
owoc();
owoc(string a, string b, int c);
owoc(owoc &mk);
void setrodzaj(string a);
void setkraj(string a);
void setcena(int a);
string getrodzaj();
string getkraj();
int getcena();
virtual void wypisz() = 0;
owoc *next;
};
owoc::owoc()
:rodzaj("cytrus"), kraj("Polska"), cena(1){}
owoc::owoc(string a, string b, int c){
rodzaj = a;
kraj = b;
cena = c;
}
owoc::owoc(owoc &mk){
rodzaj = mk.rodzaj;
kraj = mk.kraj;
cena = mk.cena;
}
void owoc::setrodzaj(string a){ rodzaj = a; }
void owoc::setkraj(string a){ kraj = a; }
void owoc::setcena(int a){ cena = a; }
string owoc::getrodzaj(){ return rodzaj; }
string owoc::getkraj(){ return kraj; }
int owoc::getcena(){ return cena; }
void owoc::wypisz(){
cout << "[owoc] rodzaj: " << rodzaj << " kraj: " << kraj << " cena: " << cena <<endl;
}
Klasa staję się abstrakcyjną, gdy deklaruję metodę virtual void wypisz() = 0;
Mam tylko pytanie czy jak wypełnię ją jakoś instrukcją, w tym wypadku:
void owoc::wypisz(){
cout << "[owoc] rodzaj: " << rodzaj << " kraj: " << kraj << " cena: " << cena <<endl;
}
to czy nadal, będzie to klasa abstrakcyjna?
Nie mogę zrozumieć, co może zawierać klasa abstrakcyjna.