Przeciążanie operatorów

Dla operacji wykonywanych na obiektach klasy Wielomian dociąż operatory =,*,*=,+,+=,-,-=,== jako metody składowe tej klasy.

Wielomian w1, w2;
 
Wielomian w3 = w1 + w2;
Wieomian w4 = w1 * 3.1;
Wielomian w4 = w1 * w4;
if (w1 == w2) cout << "Wielomiany są identyczne" << endl;
 
// itd.

Przeciąż operatory « i » jako funkcje zaprzyjaźnione z klasą Wielomian tak aby realizowały wczytywanie ze strumienia wejściowego i wypisywanie do strumienia wyjściowego:

Wielomian w;
cout << "Podaj współczynniki wielomianu:"
cin >> w;
cout << "Oto wielomian" << w << endl;

Przeciąż operator [] tak aby zwracał odpowiedni współczynnik wielomianu:

Wielomian w;
cout <<  w[0] << end;
w[0]++;
cout <<  w << end;

Przeciąż operator () tak aby zwracał wartość wielomianu dla danej wartości rzeczywistej:

Wielomian w;
double y = w(3.1);
cout << "wartosc wynosi " << y << endl;
Wyznaczanie wartości wielomianu można zrealizować korzystając ze schematu Hornara.
Dlaczego warto go zastosować?

Przeciąż jednoargumentowy operator * tak aby relizował pochodną stopnia 1-go.

Wielomian w1;
cin >> w1;
Wielomian pochodna = *w1;
Wielomian pochodna2 = ****w1;

Zrealizuj przekształcanie typu double na obiekt typu Wielomian.

Wielomian w1;
double x = 5.1;
cin >> w1;
Wielomian w2 = w1 + (Wielomian)x;
Wielomian w3 = w2 - 1.2;

Dla operacji wykonywanych na obiektach klasy Wymierna dociąż operatory =,*,*=,+,+=,-,-=,== jako metody składowe tej klasy.

Wymierna w1(1,2), w2(3,4);
Wymierna x = w1 + w2;
Wymierna y = w1 * 3;
 
// itd.
 
if (w1 == w2) cout << "Liczby są identyczne" << endl;

Przeciąż operatory « i » jako funkcje zaprzyjaźnione z klasą Wymierna tak aby poprawne wczytywanie ze strumienia wejściowego i wypisywanie do strumienia wyjściowego:

Wymierna w(1,3);
cout << "Oto liczba " << w   << endl;

Przeciąż operator rzutowania obiektu typu Wymierna na typ double

Wymierna w1(5,6);
double x = w1 * 3.1;
Wymierna w3 = w1 + 3.1;