• Nie Znaleziono Wyników

Konstruktory i destruktory, przeładowywanie operatorów

N/A
N/A
Protected

Academic year: 2021

Share "Konstruktory i destruktory, przeładowywanie operatorów"

Copied!
2
0
0

Pełen tekst

(1)

Uniwersytet Zielonogórski

Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Informatyka stacjonarne-dzienne pierwszego stopnia z tyt. inżyniera

Laboratorium Programowania Obiektowego

Konstruktory i destruktory, przeładowywanie operatorów

1. Niech będzie dany typ złożony reprezentujący liczbę zespoloną:

c l a s s l i c z z e s p { f l o a t Re , Im ; } ;

Zadeklarować i zdefiniować:

a) konstruktor inicjalizujący (zastosować listę inicjalizacyjną), b) konstruktor domniemany,

c) metodę dodaj umożliwiającą dodanie dwóch liczb zespolonych,

d) funkcję operatorową + wykonującą zadanie z punktu c) w wersji globalnej i jako składową klasy,

e) funkcję operatorową + wykonującą dodawanie wartości rzeczywistej do liczby zespolonej, tak aby możliwa była notacja przemienna (tj. float +licz zesp oraz licz zesp +float?),

Zdefiniować obiekty i napisać przykładowe wywołania funkcji.

2. Dany jest przykład klasy:

c l a s s wizytowka { p u b l i c :

char ∗nazw ; char ∗ i m i e ; char ∗ t e l ; } ;

Zadeklarować i zdefiniować:

a) konstruktor inicjalizujący (domniemany), b) konstruktor kopiujący,

c) operator przypisania = umożliwiający skopiowanie zawartości obiektu, d) destruktor.

Zdefiniować obiekty i napisać przykładowe wywołania funkcji.

3. Dla następującej struktury:

c l a s s t a b e l a {

s t a t i c i n t pamiec ; i n t T [ 1 0 ] [ 1 0 ] ; } ;

Zrealizować następujące ćwiczenia:

a) zdefiniować konstruktor domniemany,

b) przeładować operator − w wersji jedno- i dwuargumentowej, c) przeładować operator pre- i postinkrementacji,

d) przeładować operatory new i delete, tak aby prowadzić statystykę zużywanej na te obiekty pamięci.

(2)

4. Przeanalizować poniższy fragment kodu

#i n c l u d e <i o s t r e a m . h>

c l a s s samochod {

i n t f i l t r p o w i e t r z a ; p u b l i c :

i n t akumulator , z b i o r n i k p a l i w a ; / / . . .

} ;

samochod A, B ; i n t ∗wsk1 ;

i n t samochod : : ∗ wsk2=&samochod : : akumulator ; v o i d main ( ) {

wsk1=&(A. akumulator ) ; cout <<∗wsk1<<A. ∗ wsk2 ; wsk1=&(B . akumulator ) ; cout <<∗wsk1<<B. ∗ wsk2 ; / / . . .

}

Ocenić poprawność instrukcji:

a) wsk1=&(B.zbiornik paliwa);

b) wsk1=&(B.filtr powietrza);

c) wsk2=samochod::filtr powietrza;

d) wsk2++;

e) wsk1++;

5. Które przeładowania są poprawne (niepoprawne) i dlaczego?

a) fun(int i , int j , int k=0); fun(int i , int j );

b) fun(int i ,char j ); fun(int j );

c) fun(const int k); fun(int k);

d) fun(const int &k); fun(int &k);

Litertura

• Grębosz J.,Symfonia C++ standard, Edition 2000, 2008

• Grębosz J., Pasja C++, Edition 2000, 200

• Stroustrup B., Język C++, Wydawnictwa Naukowo-Techniczne 1994, 2000 i 2002

• Eckel B., Thinking in C++. Edycja polska, Helion , 2002

Cytaty

Powiązane dokumenty

Funkcjonalność klasy definiujemy przy pomocy metod, czyli funkcji zdefiniowanych wewnątrz klasy (funkcji składowej), w następujący sposób:..

Do klasy Osoba oraz Adres musisz dodać właściwości przy pomocy, których będzie można uzyskać dostęp do pól klasy. Zabezpiecz program tak, aby nie można było utworzyć

Gdy pole statyczne jest zdefiniowane wewnątrz metody danej klasy możemy odwołać się do niego przy pomocy jego nazwy.. Nazwy tej nie można jednak poprzedzić słowem

Twoim zadaniem jest zaimplementowanie i przetestowanie hierarchii składającej się z następujących klas: Osoba, Student, Wykładowca oraz Stypendysta. Poszczególne

Twoim zadanie jest utworzenie programu, który wczytywałby dany zestaw, analizował go, a następnie generował raport w postaci pliku tekstowego, który

Serializacja (ang. Serialization) jest procesem konwersji stanu obiektu do postaci, która może być zachowana na dysku lub przesłana przez sieć komputerową.. Proces

Zapoznaj się ze wstępem teoretycznym dotyczącym technologii Active Server Pages dla platformy .Net (prowadzący zajęcia udostępni w tym celu materiały Microsoft IT Academy)..

Zapoznaj się ze wstępem teoretycznym dotyczącym kontrolek danych dla ASP.NET (prowadzący zajęcia udostępni w tym celu materiały Microsoft IT Academy).. Zadanie polega