zadania na egzam, EgzaminCPP, Egzamin C++


Egzamin C++

Zagadnienia:

  1. Konstruktory - kopiujący, domniemany, dziedziczenie, obiekty składowe, inicjalizacja tablic obiektami.

  1. Destruktory - wirtualne

  1. Zmienne i funkcje statyczne

  1. Wskaźniki do składowych klasy

  1. Przeładowanie operatorów:

  1. Konstruktory konwertujące, funkcje konwertujące, kolejność dopasowania wywołania funkcji

  1. Optymalizacja wartości zwracanej:

7. Dziedziczenie i polmorfizm

8. Model obiektu C++ - podstawowy, dziedziczenie, funkcje wirtualne.

9. Szablony klas:

Rodzaje zadań:

Zadania z list:

Zestawy:

1. class l_zes {

int re, im ;

public:

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

l_zes (const l_zes &);

l_zes & operator =(const l_zes &);

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

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

l_zes & operator +=(const l_zes & a);

Poza ciałem klasy zdefiniuj:

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

  2. Dlaczego operacja z3=z1+z2 (uwaga: możemy założyć, że nie istnieją konstruktory obliczeniowe) jest wolniejsza od sekwencji operacji z3=z1; z3+=z2

2. Dane są następujące szkielety klas:

class X

{

public:

virtual f(void);

f1(void);

}, x, *px;

class Y: public X

{

public:

virtual f(void);

f1(void);

}, y, *py;

Które z powyższych zestawów przypisań jest poprawny, wyjaśnić dlaczego:

  1. x=y; py=px;

  2. y=x; py=px;

  3. x=y; px=py;

  4. px=py; y=x;

3. Dana jest klasa

class string

{ int roz ; // długość napisu

char *wsk;

public:

string(char n[]);

operator int () {return int;}

operator char * () {return wsk;}

};

Które z poniższych instrukcji są nieprawidłowe i dlaczego :

string s1(”ASDFG”)

b) Ponadto przeprowadzić następujące eksperymenty i zinterpretować wyniki.

- Dane sa konwersje zdefiniowane przez użytkownika: X −-> Y , Y −> Z. Czy istnieje niejawna

konwersja X −> Z?

- Dana jest konwersja X −> float. Czy istnieje konwersja X −> int?

- Dane sa konwersje: X −> float, X −> int, X −> char. Czy poprawna jest instrukcja

cout<<x<<endl, gdzie x jest obiektem klasy X?

4. class l_zes {

int re, im ;

public:

.......operator ++; przedrostkowy

.......... operator ++..; przyrostkowy

l_zes(int i=0, int j=0):re(i), im (j) {}

l_zes(const l_zes & z): re(z.re), im (z.im) {}

l_zes & operator = (const l_zes & z){ }

~l_zes() {}

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

Zmień klasę na szablon, Zdefinuj zaznaczone funkcje operatorowe dla szablonu oraz jeden z konstruktorów

5.

a) Zdefinuj wszystkie funkcje szablonu sort tak , aby poniższy kod był prawidłowy (instrukcje w main() były prawidłowe).

template <? >

class sort

{ int * wsk;

public:

void sortuj

{

}

};

int main()

{

sort<int , 20, rosnąco> obiekt1;

sort<int , 30, malejaco> obiekt1;

}

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

  1. Jakie są etapy dopasowywania danego wywołania funkcji - uwzględniając szablony i funkcje konwertujące.

7. Zdefiniuj klasę string z uchwytem string_rep z zdefiniowaniem konstruktorów:

Nazwisko: grupa:

  1. Napisz następujące deklaracje:

a) 5 elementową tablicę wskaźnik do funkcji char * fun (int, char);

b) wskaźnik do elementu klasy A typu int

c) wskaźnik do funkcji składowej klasy A int fun (int);

class A {

public:

int i,j;

int fun (int)

int fun1 (int)

};

2. Przeprowadzic nastepujace eksperymenty i zinterpretowac wyniki.

a) Dane sa konwersje zdefiniowane przez uzytkownika: X −> Y , Y −> Z. Czy istnieje niejawna

konwersja X −> Z?

b) Dana jest konwersja X −> float. Czy istnieje konwersja X −> int?

c) Dane sa konwersje: X −> float, X −> int, X −> char. Czy poprawna jest instrukcja

cout<<x<<endl, gdzie x jest obiektem klasy X?

Jezeli podane niejawne konwersje sa niemozliwe, to czy mozna je przeprowadzic bez dodawania

nowych metod konwertujacych?

Podaj etapy dostosowania (okreslenia która funkcja ma zostać wywołana) wywołania funkcji. Uwaga istnieją konwersje oraz funkcje szablonowe.

3. Zdefiniuj szablon do tworzenia tablic dynamicznych.

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

4. Dana jest klasa

class l_zes {

int re, im ;

public:

.......operator ++; przedrostkowy

.......... operator ++..; przyrostkowy

l_zes(int i=0, int j=0):re(i), im (j) {}

l_zes(const l_zes & z): re(z.re), im (z.im) {}

l_zes & operator = (const l_zes & z){ }

~l_zes() {}

friend ..........operator>> .......... ;

a) Zdefinuj zaznaczone funkcje operatorowe

b) Zmień klasę na szablon, który umożliwia obsługę liczb zespolonych typu float, double, int. Zdefiniuj konstruktor dla szablonu oraz funkcje operator <<

5. class L_zes {

int *re, *im ;

public:

L_zes (const char * = "");

L_zes (const L_zes &);

~string();

L_zes & operator =(const L_zes &);

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

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

L_zes & operator +=(const L_zes & a);

Zdefiniuj powyższe funkcje składowe klasy oraz konstruktory obliczeniowe dla funkcji

operator - operator + optymalizujące zwracanie wartości typu L_zes w funkcjach składowych.

Czy te konstruktory mogą być prywatne.

6. Dlaczego (polimorfizm) wywołanie funkcji wirtualnych może powodować narzuty czasowe w porównaniu z wywoływaniem funkcji zwykłych.

7. Dana jest klasa

class osoba{

char naz[20]

int wiek

public:

};

oraz następujące deklaracje

osoba grupa[3]

osoba *wsk = new osoba[10];

Zdefiniuj odpowiednie konstruktory oraz zainicjalizuj (lista inicjalizacyjna) wartości elementów tablic o ile jest to możliwe.

8. Zadeklaruj klasę podstawową oraz klasy pochodne, tak aby odzwierciedlały poniższy diagram

Zadeklaruj klasy wraz z składnikami, i funkcjami umożliwiającymi rysowanie każdej z funkcji (tylko deklaracji funkcji)



Wyszukiwarka

Podobne podstrony:
zadania na egzam, egzamin2007, Egzamin C++
zadania na egzam, egzamin2007, Egzamin C++
zadania na egzam, egzamin obiektowe, Pytania na egzamin z C++
zadania na egzam, egfz2007, Egzamin C++
Polimery wykład 6 - ściąga, V ROK, Polimery, ściągi na egzam, egzamin od G Barańskiej ściągi
Zadania na fizykę Egzamin
Polimery wykład 7 - ściąga, V ROK, Polimery, ściągi na egzam, egzamin od G Barańskiej ściągi
Polimery wykład 2 - ściąga, V ROK, Polimery, ściągi na egzam, egzamin od G Barańskiej ściągi
Polimery wykład 3 - ściąga, V ROK, Polimery, ściągi na egzam, egzamin od G Barańskiej ściągi
WYKŁADY Zadania na przykładowy egzamin
Polimery wykład 6 - ściąga, V ROK, Polimery, ściągi na egzam, egzamin od G Barańskiej ściągi
Plik acrobat, zadania na egzam
Plik acrobat zadania na egzam
Zadania na egzamin INiG 2010, studia calosc, studia całość, 3 semestr, inig, Matematyka stosowana, M
zadania na egzaminie czerwcowym 2009, Elektrotechnika, PODSTAWY ELEKTROTECHNIKI, pytania
zadanie - kwiecień 2009, egzamin na rzeczoznawcę majątkowego, kwiecien 2009
fotka zadania na koloII-reczuch, Geodezja, Fotogrametria, Egzamin

więcej podobnych podstron