Laboratorium 2
Transkrypt
Laboratorium 2
Programowanie Obiektowe w C++ – LABORATORIUM 2 Do każdego z poniższych zadań napisz program ilustrujący wszystkie właściwości klasy. Zad.1 Zdefiniuj klasę Wektor, która ma dwa pola prywatne: całkowite n i wskaźnik tab do liczb całkowitych oraz publiczne metody: a) Konstruktor bez argumentów (domyślny), który polu n przypisuje 0, a wskaźnikowi tab pusty wskaźnik (nullptr). b) Konstruktor o jednym całkowitym argumencie, który określa liczbę elementów tablicy tab, czyli polu n przypisuje wartość argumentu, a przy pomocy wskaźnika tab tworzy dynamiczną tablicę n-elementową i każdemu jej elementowi przypisuje wartość losową z przedziału <0,n). c) Konstruktor o dwu całkowitych argumentach, który polu n przypisuje wartość pierwszego argumentu, przy pomocy wskaźnika tab tworzy dynamiczną tablicę n-elementową i każdemu jej elementowi przypisuje wartość drugiego elementu. d) Konstruktor kopiujący. e) Destruktor. f) Operator przypisania. g) Metodę wypisującą na ekranie elementy tablicy rozdzielone przecinkiem. h) Metodę zmieniającą wartość j-tego elementu, gdzie j jest jej argumentem. i) Metodę zwracającą wartość j-tego elementu, gdzie j jest jej argumentem. j) Zaprzyjaźnioną funkcję dodaj(), która zwraca sumę wartości odpowiednich elementów tablicy, o ile wektory są równoliczne. W przeciwnym przypadku zwraca krótszy wektor. Zad.2 W funkcji main() utwórz tyle obiektów (naprzemiennie zwykłych i dynamicznych) ile jest konstruktorów w klasie Wektor i na ich rzecz wywołaj dostępne metody klasy. Zad.3 Zmodyfikuj definicję klasy Wektor wzbogacając ją o odpowiednie pola i metody tak, aby można było kontrolować ile obiektów klasy Wektor zostało utworzonych. Zad.4 Zmodyfikuj te z metod klasy Wektor, które można wywołać na rzecz stałego obiektu i pokaż ich działanie. Zad.5 Które z metod klasy Wektor można byłoby zadeklarować jako inline?