Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ====== Dziedziczenie ====== ===== Figury ===== Zaimplementuj klasy **Figura**, **Kolo**, **Kwadrat** i **Trojkat** oraz odpowiednie metody zgodnie z podanym diagramem (kliknij w obrazek aby powiększyć): {{:zajecia:po:figury1.png?300|}} Konstruktory domyślne inicjują wartości boków figur (promienia) zerami zaś zmienna **nazwa** jest inicjowana łańcuchami znaków, odpowiednio: "Figura", "Kwadrat", "Kolo" i "Trojkat".\\ Metody **Obwod()** i **Pole()** dla obiektu klasy **Figura** niech zwracają wartość 0.\\ Dociąż operator << dla obiektu klasy **Figura** oraz strumienia wyjściowego **ostream** (uczyń tą funkcję przyjacielem klasy Figura), tak aby wywołanie postaci: <code c++> Kwadrat k(3); cout << k << endl; Trojkat t(3,4,5); cout << t << endl; </code> generowało nastepujący komunikat: Kwadrat o polu 9 i obwodzie 12. Trojkat o polu 6 i obwodzie 12. <note tip>Metody Pole() i Obwod() nie muszą (a nawet nie powinny) być definiowane dla klasy Figura. Uczyń je czysto wirtualnymi. </note> ===== Klasa Wielomian ===== Punkt na płaszczyźnie: <code c++> struct Punkt { double x; double y; }; </code> **1.** Utwórz klasę pochodną klasy **Wielomian** o nazwie **Prosta**.\\ Zadeklaruj i zdefiniuj konstruktory: <code c++> Prosta(); Prosta(double a,double b); Prosta(Punkt x1,Punkt x2); Prosta(const Prosta &p); </code> Zaimplementuj metody: <code c++> Punkt PunktPrzeciecia(const Prosta &p) const; double MiejsceZerowe(); Prosta Prostopadla(Punkt x); </code> 2. Utwórzu klasę pochodną klasy **Wielomian** o nazwie **Parabola**.\\ Zadeklaruj i zdefiniuj konstruktory: <code c++> Parabola(double a,double b,double c); Parabola(const Parabola &p); </code> Zaimplementuj metody: <code c++> int MiejscaZerowe(double &x1,double &x2); double Ekstremum(); </code> <note important>Jakie metody, które nie są dziedziczone, należy jeszcze zaimplementować? </note>