Lab_3
Napisać kod, który realizuje następną hierarchie klas: shape_geom - klasa bazowa, zawiera składowa ukryte double area. Klasy pochodne: rect, circle. Dla wprowadzenia danych użyć w klasach pochodnych konstruktory sparametryzowane. Dane klas pochodnych zadeklarować jako private. Każda z klas pochodnych mysi mieć metodę obliczenia płaszczyzny dla prostokąta (rect) i kola (circle), które przekazują wynik składowej klasy bazowej area. Dla wyświetlania wyniku klasa bazowa powinna mięć metodę disp().
Napisać kod, który realizuje następną hierarchie klas: NODE_COORD - klasa bazowa, zawiera składowe prywatne double x, y - współrzędne wierzchołku na płaszczyźnie. Klasa pochodna TRIANGLE zawiera trzy wierzchołki. Dla wprowadzenia danych użyć w klasach bazowej i pochodnej konstruktory sparametryzowane. Dane klasy pochodnej zadeklarować jako private. Klasa pochodna powinna mieć metodę disp() wyświetlania współrzędnych każdego z wierzchołków, wywołując metodę klasy bazowej disp().
Deklaracja klasy bazowej jest podana poniżej, przecież potrzebuje poprawek dla skutecznego tworzenia klasy pochodnej.
class NODE_COORD
{
double x, y;
public:
NODE_COORD() : x(0), y(0) {}
NODE_COORD(double xx, double yy);
void disp() { cout << " x = " << x << " y = " << y <<endl;}
};
Dla zadania Stack z poprzedniej pracy laboratoryjnej (już musi być użyta dynamiczne alokowanie pamięci w konstruktorze i zwolnienie pamięci w destruktorze) zmienić metodę getnumb() na inline funkcje (w deklaracji klasy), a metodą push(…) - na inline funkcje (w definicji tej funkcji).
Dla czego podana funkcja może nie kompilować się jako inline?
void f1()
{
int i;
for(i=0; i<10; i++)
cout << i;
}
Napisać kod, w którym są używane funkcje przeciążone dla obliczenia wartości bezwzględnych typy int, long, double. Użyć te funkcje jako inline.