Witam mam kilka pytań, ale najpierw przedstawię treść problemu
Treść:
Oprogramować algebrę wielomianów.
Utworzyć abstrakcyjną klasę bazową zawierającą:
- właściwości algebry wielomianów
- operacje wprowadzania i wyprowadzania
- konwersję z typu double oraz do typu double.
Bazując na niej utworzyć klasę
wielomianów oraz klasę wielomianów binarnych (współczynniki wielomianu są binarne,a dodawanie jest dodawaniem modulo 2 bez przeniesienia).
Reasumując:
Algebra - klasa bazowa abstrakcyjna
- Wielomiany -k. pochodna od Algebry
- WielomianyBinarne -k. pochodna od Algebry
Pytania
- Z racji że działania na Wielomianach i WielomianachBinarnych, w pewnych aspektach byłyby podobne, to dobrze byłoby przeładować tylko raz operator w klasie Bazowej dla danej operacji, a potem korzystać z tych operatorów w klasach pochodnych. Niestety jest to klasa Abstrakcyjna, wiec z powodów oczywistych jest to niemożliwe. Mam 2 pomysły:
a) Wielodziedziczenie
b) Zastosowanie szablonów funkcji operatorowych w klasie Algebra
a) Nie jestem przekonany do rozbijania jednej klasy na 2.
b) Pomysł wydaje mi się ciekawszy, tylko nie wiem czy istnieje jakis sposob aby ograniczyc szablon do 2ch klas. Raz chciałbym aby były to Wielomiany a innym razem WielomianyBinarne
template <class T>
T operator+(T skladnik)
{
//
}
Jeżeli jest jakieś lepsze rozwiązanie to jestem otwarty na nowe pomysły.
Pozdrawiam :)