Nazwisko: grupa:

  1. Zdefiniuj klase z składnikami prywatnymi int x, y. Zdefiuj funkcje składową ( publiczną) ustawiającą wartości tych elementów klasy. Jeżeli wykonanie nie jest możliwe proszę napisać dlaczego.

2. class punkt {

int x, y ;

public:

punkt (int i=0; int j=0);

punkt (const punkt &);

punkt & operator =(const punkt &);

friend punkt operator +(const punkt & a, const punkt & b);

friend punkt operator -(const punkt & a, const punkt & b);

operator +=…..

Poza ciałem klasy zdefiniuj:

  1. konstruktory obliczeniowe dla funkcji operator - operator + optymalizujące zwracanie wartości obiektu typu punkt w funkcjach. Czy te konstruktory obliczeniowe mogą być prywatne?

  2. zdefiniuj funkcje operator += friend

..........operator<< .......... ;

4. Zdefiniuj szablon do tworzenia tablic dynamicznych.

a) Zdefiniuj konstruktor, destruktor oraz funkcje szukania maksimum w tablicy. Napisz funkcje operatorową [ ] .

b) Zdefiniuj klasę specjalizowaną dla typu char * (nie definiować funkcji składowych , tylko deklaracje)

5. Zdefiniuj wskaźnik ,który może pokazywać na elementy typu int tylko i wyłącznie zawarte w klasie

Zdefiniuj wskaźnik ,który może pokazywać na funkcje składową int *fun (int ) (tylko i wyłącznie na tą funkcję) zawartą w klasie A

Class A{

public:

int a;

char b;

//.........

int *fun (int )

};

Zainicjalizuj wskaźniki.

6. Zdefiniuj klasę punkt z :

z prywatnym składnikiem statycznym _liczba obiektów:

publiczną funkcję statyczną zwracającą wartość składnika statycznego (czym się charakteryzuje)

Zadeklaruj obiekt, wskaźnik do obiektu i napisz wszystkie możliwe wywołania (dostępu do) składnika statycznego i funkcji statycznej.

7. Dany jest wzorzec

template <class T>

class macierz

{

T *wsk;

int m, n;

public:

macierz(int i, int j);

macierz(const macierz &r);

macierz(T k);

~macierz();

macierz & operator =(const macierz &r);

.............

...............

};

int main()

{

macierz<float> a(3, 3), b(2, 2), c(2, 2);

cout << a[2][1];

return 0;

}

  1. Niech klasy X i Y będą zdefiniowane

class X

{

public:

virtual f(void);

f1(void);

}, x, *px;

class Y: public X

{

public:

virtual f(void);

f1(void);

}, y, *py;

Dany jest fragment programu:

px=&Y;

px->f();

px->f1();

Które funkcje są wywoływane w powyższym fragmencie programu.