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?