Czy moge miec w programie wiecej niz 1 klase podstawowa abstrakcyjna?
W glowie mam program ktory bedzie pobieral od uzytkownika wielomian/ciąg/logarytm i moze w przyszlosci jeszcze inne wyrazenia (algebraiczne/arytmetyczne (jakie?)) a potem wykonywal na nich jakies operacje: dodawanie, odejmowanie, mnozenie, dzielenie, liczenie granicy, okreslanie monotonicznosci itd.
Zalozmy, ze stworze podstawowa klase abstrakcyjna:
class wyrazenieAlgebraiczne
{
virtual void wczytaj()=0;
virtual void wypisz()=0;
}
z tej klasy beda dziedziczyc np. class wielomianWx; class wielomianPx (on tez bedzie dziedziczyl po wielomianWx, bo beda mialy wlasciwie te same atrybuty), class ciagAn, ciagBn, ciagCn (tez pewnie beda dziedziczyc po sobie, ale tego jeszcze nie pisalem).
No i pytanie brzmi czy funkcje z operacjami (funkcjami) takimi jak dodawanie(), odejmowanie(), mnozenie(), dzielenie(), dac rowniez do klasy podstawowej wyrazenieAlgebraiczne, czy moze stworzyc druga klase podstawowa abstrakcyjna:
class operacje
{
virtual void dodawanie()=0;
virtual void odejmowanie()=0;
virtual void mnozenie()=0;
virtual void dzielenie()=0;
virtual void znajdzGranice()=0;
virtual void okreslMonotonicznosc()=0;
//itd...
}
Wydaje mi sie, ze danie tego do jednej klasy podstawowej to moze byc troche balagan, aczkolwiek nigdy nie pisalem nic z wykorzystaniem polimorfizmu, wlasciwie to pierwszy kod, ktory pisze objektowo.
tldr
Czy moge miec w kodzie wiecej niz 1 klase podstawowa abstrakcyjna?