KOŁO, ver2


Jest to lista pytań, która jest wypadkową odpowiedzi moich(slowman), Modima i AIRu z 2 roku.

ZMIENIONE ODPOWIEDZI DO PYTAŃ: 68, 78, 136, 137 i 143

true

false

W sumie jest 150 pytań - 2 razy ponumerowałem OpisProblemu. Jeśli zauważyliście jakieś błędy to najlepiej piszcie na forum w odpowiednim temacie( http://air.tmtsystems.eu/viewtopic.php?f=71&t=461 ). Wszystkie potencjalne błędy będą mile widziane.

Sprzeczne pytania zostały:

Wyjątków ma nie być na ekranówce zaliczeniowej-będą na egzaminie :).

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

ostream strumien1, strumien2;

int main()

{

strumien1 = strumien2 = cout;

strumien1 << " Napis1 ";

strumien2 << " Napis2 " << endl;

return 0;

}

Czy prawda jest, ze ...

KoniecOpisu

1 OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

KoniecOpisu

2 OpisPytania

... nic sie nie pojawi, gdyz program zawiera blad.

KoniecOpisu

3 OpisPytania

... nic sie nie pojawi, gdyz dla strumieni operacja przypisania

nie jest dozwolona.

KoniecOpisu

4 OpisPytania

... nic sie nie pojawi, gdyz wielokrotne przypisywanie dla strumieni

nie jest mozliwe. Nalezaloby to rozwiazac za pomoca pojedynczych

przypisan, tj.

strumien1 = cout; strumien2 = cout;

KoniecOpisu

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

ostream &strumien1 = cout, &strumien2 = strumien1;

int main()

{

strumien1 << " Napis1 ";

strumien2 << " Napis2 " << endl;

}

Czy prawda jest, ze ...

KoniecOpisu

5 OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

KoniecOpisu

6 OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

Jednak program moze spowodowac blad wykonania,

gdyz operacje tego typu nie sa dozwolone.

KoniecOpisu

7 OpisPytania

... moze powstac blad, aczkolwiek nie musi,

gdyz "strumien2" jest referencja do referencji.

KoniecOpisu

8 OpisPytania

... operujac na zmiennych referencyjnych "strumien1" i "strumien2",

wykonujemy operacje na strumieniu wyjscia standardowego reprezentowanym

przez obiekt "cout".

KoniecOpisu

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

class FiguraGeom {

public:

virtual void Wyswietl() { cout << " FiguraGeom" << endl; }

};

class Kwadrat: public FiguraGeom {

public:

virtual void Wyswietl() { cout << " Kwadrat" << endl; }

};

int main()

{

Kwadrat *wKwd = new Kwadrat;

FiguraGeom *wFig = wKwd;

wFig->Wyswietl();

}

Czy prawda jest, ze ...

KoniecOpisu

9 OpisPytania

... w programie wystepuje niezgodnosci typow w podstawieniu:

FiguraGeom *wFig = wKwd;

W tym przypadku nie jest mozliwe niejawne rzutowanie "w gore".

KoniecOpisu

10 OpisPytania

... na ekranie pokaze sie napis:

Kwadrat

Jest to wynik dzialania metody "Wyswietl" z klasy "Kwadrat".

KoniecOpisu

11 OpisPytania

... ponizsze podstawienie moze spowodowac blad.

FiguraGeom *wFig = wKwd;

Powodem jest wystepowanie metod wirtualnych w definicjach klas.

KoniecOpisu

12 OpisPytania

... obiekt klasy "Kwadrat" zawiera w sobie obiekt klasy "FiguraGeom".

KoniecOpisu - potwierdzone przez Kreczmera

13 OpisPytania

... domyslne destruktory dla klas "FiguraGeom" i "Kwadrat" nie sa

destruktorami wirtualnymi.

KoniecOpisu

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

class KlasaA {

public:

virtual ~KlasaA() {}

};

class KlasaB: public KlasaA {

public:

~KlasaB() {}

};

int main()

{

KlasaB *wObiektB = new KlasaB;

KlasaA *wObiektA = wObiektB;

delete wObiektA;

}

Czy prawda jest, ze ...

KoniecOpisu

14 OpisPytania

... zapis programu jest prawidlowy i destrukcja obiektu przebiegnie wlasciwie.

W tym przypadku brak slowa kluczowe "virtual" przed destruktorem klasy "KlasaB"

nie ma zadnego znaczenia.

KoniecOpisu

15 OpisPytania

... sam zapis programu jest prawidlowy. Jednak uruchomienie programu moze

powodowac jego bledne dzialanie. Aby temu zapobiec nalezaloby zmienic

linie:

KlasaA *wObiektA = wObiektB;

na linie:

KlasaA *wObiektA = static_cast<KlasaA*>(wObiektB);

KoniecOpisu

16 OpisPytania

... destruktor klasy "KlasaB" jest jest destruktorem wirtualnym mimo

braku slowa kluczowego "virtual".

KoniecOpisu

17 OpisPytania

... w programie w linii:

KlasaA *wObiektA = wObiektB;

zachodzi niejawne rzutowanie "w gore". Jest ono mozliwe tylko i wylacznie

dzieki temu, ze klasa "KlasaA" posiada destruktor wirtualny.

KoniecOpisu

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

class KlasaA {

};

class KlasaB: public KlasaA {

};

int main()

{

KlasaA *wObiektA = new KlasaB;

KlasaB *wObiektB = wObiektA;

return 0;

}

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

18 ... w programie w linii:

KlasaB *wObiektB = wObiektA;

wystepuje niedozwolona proba rzutowania "w dol".

KoniecOpisu

19 OpisPytania

... w programie w linii

KlasaB *wObiektB = wObiektA;

wystepuje rzutowanie "w dol", ktore bedzie poprawne jesli

zastosowany zostanie operator jawnego rzutowania w postaci:

KlasaB *wObiektB = static_cast<KlasaB*>(wObiektA);

KoniecOpisu

20 OpisPytania

... w programie w linii:

KlasaB *wObiektB = wObiektA;

rzutowanie "w dol" byloby poprawne, gdyby zostal

w odpowiedni sposob zdefiniowany wirtualny destruktor w klasie "KlasaA".

KoniecOpisu

21 OpisPytania

... w programie w linii:

KlasaA *wObiektA = new KlasaB;

nie ma bledu zapisu polecenia. Jednak wykonanie tej operacji moze powodowac

(aczkolwiek nie zawsze musi) blad i przerwanie dzialania programu w momencie

wykonania tej instrukcji.

KoniecOpisu

OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

class KlasaA {

public:

void Wyswietl() { cout << " KlasaA" << endl; }

};

class KlasaB: public KlasaA {

public:

virtual void Wyswietl() { cout << " KlasaB" << endl; }

};

int main()

{

KlasaA *wObiektA = new KlasaB;

wObiektA->Wyswietl();

return 0;

}

Czy prawda jest, ze ...

KoniecOpisu

22 OpisPytania

... wykonana zostanie metoda z klasy "KlasaA". Jest ona metoda

wirtualna, co wynika z definicji metody o tej samej nazwie

w klasie "KlasaB".

KoniecOpisu

23 OpisPytania

... wykona sie metoda z klasy "KlasaA". Aby uruchomic metode z klasy

"KlasaB" nalezaloby najpierw dokonac rzutowania "w dol",

tzn.

static_cast<KlasaB*>(wObiektA)->Wyswietl();

KoniecOpisu

24 OpisProblemu ====================================================

Dany jest nastepujacy fragment kodu:

#include <iostream>

using namespace std;

class KlasaA { int _PoleA; };

class KlasaB: public KlasaA { int _PoleB; };

int main()

{

KlasaB *wObiektB = new KlasaB;

KlasaA *wObiektA = wObiektB;

if (wObiektA == wObiektB) cout << "Rownosc nr 1" << endl;

}

Powyzszy kod jest poprawny pod wzgledem skladni i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

25 OpisPytania

... operacja porownania wskaznikow jest poprawna. Regula ta obejmuje wszystkie

przypadki tego typu niezaleznie od zlozonosci wewnetrznej struktury obiektu

i podobiektu.

KoniecOpisu(-sprawdzane +Kreczmer)

26 OpisPytania

... operacja ta da wlasciwy wynik tylko i wylacznie wtedy, gdy w klasach

beda zdefiniowane destruktory wirtualne.

KoniecOpisu

27 OpisPytania

... w tym przypadku zachodzi rownosc tylko i wylacznie ze wzgledu

na to, ze klasa "KlasaA" jest bezposrednio dziedziczona przez

klase "KlasaB".

KoniecOpisu”rownosc zachodzi, ale nie tylko ze wzgledu na bezposrednie dziedziczenie. Zalozmy ze mamy jeszcze "KlaseC" ktora takze jest dziedziczona bezposrednio przez "KlasaB". Po wykonaniu 'KlasaC *wObiektC = wObiektB', okaze sie, ze rownosci miedzy adresami 'wObiektC == wObiektB' nie bedzie. (Przyklad z wykladu) FALSE” //inaczej niż Modimo

28 OpisPytania

... operacja porownania powoduje niejawne rzutowanie zawartosci zmiennej

wskaznikowej "wObiektB" na wskaznik typu: KlasaA*

KoniecOpisu -Sprawdzane u Kreczmera-chyba podobnie jak w zadaniu 25

29 OpisPytania

... w programie wykorzystane jest niejawne rzutowanie wskaznikow.

W tym przypadku niejawne rzutowanie nie jest zwiazane z hierarchia

dziedziczenia klas.

KoniecOpisu

OpisProblemu ====================================================

Dany jest fragment kodu:

vector<double> Tab(5);

double &Zm = Tab[1];

Tab.push_back(10);

Zm = Tab[5];

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

30 OpisPytania

... jesli kod wykona sie poprawnie, to po ostatnim podstawieniu

zawsze bedzie zachodzil warunek:

Zm == 10

Konstrukcja ta jest jednak niepoprawna, gdyz poprzez zmienne

"Zm" moze nastapic odwolanie do niewlasciwego obszaru pamieci.

KoniecOpisu

31 OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

Tab[1] == Tab[5]

KoniecOpisu

OpisProblemu ====================================================

Dany jest fragment kodu:

vector<double> Tab(5);

double &Zm = Tab[1];

Tab.push_back(10);

Zm = Tab[5];

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

32 OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

&Zm == &Tab[1]

KoniecOpisu

33 OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

Zm == Tab[1]

KoniecOpisu

OpisProblemu ====================================================

Niech dana bedzie deklaracja zmiennej:

list< vector< double> > Lst(5);

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

34 OpisPytania

... w podstawieniu przedstawionym ponizej

Lst.back()[1] = 5;

nastepuje proba modyfikacji drugiej skladowej wektora,

ktory jest piatym elementem listy?

KoniecOpisu

35 OpisPytania

... wszystkie wektory wchodzace w sklad utworzonej listy maja

rozmiar zerowy (tzn. metoda size() w ich przypadku zwraca 0).

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

list< vector< double> > Lst(5);

Lst.back()[1] = 5;

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

36 OpisPytania

... wykonane podstawienie spowoduje utworzenie drugiej skladowej

w ostatnim wektorze listy 'Lst'.

KoniecOpisu

37 OpisPytania

... zmienna 'Lst' reprezentuje liste wektorow, ktore maja

po piec skladowych.

KoniecOpisu

OpisProblemu ====================================================

Dany jest program:

struct Wektor2f {

float _x, _y;

Wektor2f(float w): _x(w), _y(w) {}

operator float () const { return _x*_x + _y*_y; }

};

int main()

{

Wektor2f Wek = 1;

float Liczba;

Liczba = 2 + Wek * 2;

}

Jest on prawidlowy pod wzgledem skladni.

Czy prawda jest, ze ...

KoniecOpisu

38 OpisPytania

... po wykonaniu ostatniego dzialania zmienna 'Liczba' zawierac

bedzie wartosc 10.

KoniecOpisu

39 OpisPytania

... w trakcie realizacji ostatniego dzialania w funkcji main,

tzn. operacji: Liczba = 2 + Wek * 2;

nastepuje niejawna konwersja obiektu 'Wek' do zmiennej tymczasowej

typu float.

KoniecOpisu

40 OpisPytania

... w tym przypadku zapis: Wektor2f Wek = 1;

jest identyczny z zapisem: Wektor2f Wek(1);

gdyz w obu przypadkach nastepuje wywolanie jedynie

konstruktora klasy 'Wektor2f'.

KoniecOpisu

41 OpisPytania

... w funkcji 'main' wystepuje wywolanie konstruktora

klasy 'Wektor2f' oraz jedna niejawna konwersja

obiektu klasy 'Wektor2f' do zmiennej typu float.

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

list <vector< double> > Lst(5);

vector<double> TabWekt[4] = { vector<double>(5), vector<double>(4) };

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

42 OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

TabWekt[2].size() == TabWekt[3].size()

KoniecOpisu

43 OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

TabWekt[0].size() == TabWekt[3].size()

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

list <vector< double> > Lst(5);

vector<double> TabWekt[4] = { vector<double>(5), vector<double>(4) };

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

44OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

TabWekt[0].size() == Lst.size()

KoniecOpisu

45 OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

TabWekt[3].size() == Lst.size()

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

vector<double> Wekt(4);

double *wskA = &*Wekt.begin();

double *wskB = &*Wekt.end();

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

46 OpisPytania

... wskaznik "wskA" zawiera adres pierwszego elementu

dostepnego poprzez obiekt "Wekt"?

KoniecOpisu

47 OpisPytania

... wskaznik "wskB" zawiera adres ostatniego elementu

dostepnego poprzez obiekt "Wekt"?

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

list<double> Lst(4);

double *wskA = &Lst.front();

Lst.push_back(10);

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

48 OpisPytania

... do drugiego elementu listy mozna odwolac sie w nastepujacy sposob:

*++Lst.begin();

KoniecOpisu

49 OpisPytania

... wywolanie metody "push_back" spowoduje realokacje pamieci dla

calej listy i dlatego po jej wykonaniu adres w zmiennej "wskA"

moze juz nie byc adresem pierwszego elementu?

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

class KlasaBazowa { };

class KlasaPochodna: public KlasaBazowa { };

void funkcja(const KlasaBazowa &) { }

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

50 OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( KlasaPochodna() );

KoniecOpisu

51 OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( new KlasaPochodna() );

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

class KlasaBazowa { };

class KlasaPochodna: public KlasaBazowa { };

void funkcja(const KlasaPochodna &) { }

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

52 OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( *static_cast<KlasaBazowa*>(&KlasaPochodna()) );

KoniecOpisu

53 OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( KlasaBazowa() );

KoniecOpisu

OpisProblemu ====================================================

Niech dany bedzie fragment kodu:

struct KlasaA {

int _PoleA;

KlasaA(int Wart) { _PoleA = Wart; }

};

struct KlasaB {

KlasaA _PoleKlasyA;

KlasaB();

};

Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym

kontekscie i kompiluje sie bez zadnych ostrzezen.

Czy prawda jest, ze ...

KoniecOpisu

54 OpisPytania

... ponizsza implementacja konstruktora klasy "KlasaB"

wymusi uruchomienie konstruktora klasy "KlasaA" z parametrem

o wartosci 10 w celu wlasciwego zainicjalizowania pola "_PoleKlasyA"?

KlasaB::KlasaB(): _PoleKlasyA(10)

{ }

KoniecOpisu

55 OpisPytania

... ponizsza implementacja konstruktora klasy "KlasaB"

wymusi uruchomienie konstruktora klasy "KlasaA" z parametrem

o wartosci 10 w celu wlasciwego zainicjalizowania pola "_PoleKlasyA"?

KlasaB::KlasaB(): KlasaA(10)

{ }

KoniecOpisu

OpisProblemu ====================================================

Dana jest nastepujaca deklaracja zmiennych:

int kk, &ll=kk, &mm=ll;

KoniecOpisu

56 OpisPytania

Czy po wykonaniu nastepujacych operacji:

kk=2;

ll=5;

mm=7;

zmienna kk bedzie miala wartosc 7 ?

KoniecOpisu

57 OpisPytania

Czy spelniony jest ponizszy warunek?

&kk == &mm

KoniecOpisu

OpisProblemu ====================================================

Nastepne pytanie dotyczyc bedzie referencji i zmiennych referencyjnych:

KoniecOpisu

58 OpisPytania

Czy poprawne jest stwierdzenie:

Przekazywanie parametru funkcji przez referencje

polega na tym, ze do funkcji przekazywany jest parametr

aktualny, a nie tylko jego wartosc.

Dzieki temu zmiany wartosci parametru w funkcji sa widziane

rowniez na "zewnatrz" tej funkcji.

KoniecOpisu

59 OpisPytania

Czy poprawne jest stwierdzenie:

Jako wynik funkcji wolno przekazywac referencje do

zmiennych lokalnych tej funkcji, poniewaz zmienne te

istnieje caly czas podczas dzialania danej funkcji.

KoniecOpisu

OpisProblemu ====================================================

Pytanie dotyczyc bedzie przeciazania funkcji i metod.

KoniecOpisu

60 OpisPytania

Czy funkcje przeciazone to funkcje majace wspolna sama nazwe

(przy czym wielkosc liter jest nieistotna), lecz rozniace sie

np. liczba parametrow lub typami parametrow?

KoniecOpisu -inaczej niż u Modimo-pytany Kreczmer w zasadzie nie udzielił odpowiedzi, ani wskazówki

61 OpisPytania

Czy prawdziwe jest stwierdzenie, ze w jezyku C++ mozna przeciazac

funkcje, a nie mozna przeciazac operatorow arytmetycznych

poza obrebem (definicji) danej klasy?

KoniecOpisu

62 OpisPytania

Czy poprawna jest nastepujaca definicja przeciazenia

operatora przesuniecia bitowego dla strumienia wyjsciowego.

std::ostream &operator << ( std::ostream &strumien1, std::ostream &strumien2 )

{

return strumien2;

}

KoniecOpisu

OpisProblemu ====================================================

Pytanie dotyczyc bedzie hermetyzacji danych i metod

oraz funkcji zaprzyjaznionych

KoniecOpisu

63 OpisPytania

Czy hermetyzacja komponentow klasy (pol lub metod) ma na

celu zabezpieczenie ich przed modyfikacja lub wywolaniem przez

inne metody tej samej klasy?

KoniecOpisu

64 OpisPytania

Czy metody prywatne (private) i chronione (protected) klasy

dostepne sa dla funkcji zaprzyjaznionych z ta klasa?

KoniecOpisu

65 OpisPytania

Czy dozwolona jest modyfikacja pol prywatnych danej

klasy w funkcjach zaprzyjaznionych z ta klasa?

KoniecOpisu

OpisProblemu ====================================================

Pytanie dotyczyc bedzie konstruktorow i destruktorow.

KoniecOpisu

66 OpisPytania

Czy prawdziwe jest ponizsze stwierdzenie:

Jezeli dla klasy "KlasaA" nie zostal zdefiniowany zaden

konstruktor, to przy deklarowaniu w programie glownym

zmiennej danej klasy, np.:

KlasaA ObiektA;

zostanie wywolany domyslny konstruktor kopiujacy?

KoniecOpisu

67 OpisPytania

Czy jedna z operacji powodujacej niejawne wywolanie

konstruktora danej klasy jest dynamiczna alokacja

obiektu tejze klasy za pomoca operatora "new" ?

KoniecOpisu - Sprawdzone u Kreczmer

68 OpisPytania

Czy destruktory sa zawsze wywolywane niejawnie w przypadku

dla zmiennych statycznych, gdy sterowanie osiagnie koniec

zakresu waznosci deklaracji danego obiektu.

KoniecOpisu - założywszy, że „ zakresu waznosci deklaracji danego obiektu” to koniec np. funkcji, gdzie ten obiekt został stworzony to odp. NIE. Taki obiekt zostanie usunięty podczas kończenia pracy progrmu.

OpisProblemu ====================================================

Pytanie dotyczyc bedzie konstruktorow i destruktorow.

KoniecOpisu

69 OpisPytania

Czy prawda jest, ze:

Destruktor powinien miec taka sama

liste parametrow w wywolaniu jak konstruktor.

KoniecOpisu

70 OpisPytania

Niech bedzie dana definicja klasy:

class LZespolona {

private:

double _re, _im;

public:

LZespolona() { _re = _im = 0;}

};

Czy klasa ta zawiera konstruktor kopiujacy (jawny lub niejawny, o ile

taki moze istniec w tym przypadku).

KoniecOpisu

OpisProblemu ====================================================

Czy konstruktor ...

KoniecOpisu

71 OpisPytania

... jest metoda skladowa klasy, ktora

zawsze inicjalizuje pola tej klasy?

KoniecOpisu

72 OpisPytania

... ma taka sama nazwe jak nazwa klasy i

moze byc wywolany jawnie jak kazda metoda.

KoniecOpisu

73 OpisPytania

... moze byc zadeklarowany w ponizszy sposob:

class Klasa {

Klasa(Klasa);

public:

};

KoniecOpisu

OpisProblemu ====================================================

Czy przciazanie metod klasy ...

KoniecOpisu

74 OpisPytania

... jest mozliwe tylko poza sekcja chroniona (protected) danej klasy.

KoniecOpisu

75 OpisPytania

... jest zabronione w przypadku destruktora.

KoniecOpisu

76 OpisPytania

... wykorzystujace argumenty domyslne moze prowadzic

do niejednoznacznosci, tzn. z zapisu wywolania metody

bez znajomosci wartosci argumentow domyslnych nie

bedzie mozna stwierdzic, ktora metoda bedzie wywolana?

Pytanie dotyczy definicji w programie, ktory kompiluje sie

poprawnie i nie wystepuja zadne ostrzezenia.

KoniecOpisu -sprawdzone u Kreczmera

OpisProblemu ====================================================

Niech bedzie dana definicja:

int numer::funkcja(int i)

{

...

}

Czy prawda jest, ze ...

KoniecOpisu

77 OpisPytania

... moze to byc definicja metody dla klasy lub struktury lub unii

lub tez unii o nazwie "numer"?

KoniecOpisu

78 OpisPytania

jezeli jest to metoda klasy "numer", to jej definicja

jest umieszczona na pewno poza blokiem definicji tej klasy?

KoniecOpisu //kolesie z II roku podobno kompilowali - ale, jeśli chodzi o definicje postaci: numer::funkcja(int i); to jej nie można wsadzić do bloku definicji klasy.

OpisProblemu ====================================================

Mamy zdefiniowana klase "KlasaA" i jej klase pochodna

"KlasaB":

class KlasaA {

int _Pole;

public:

KlasaA(int a) { _Pole = a; };

};

class KlasaB : public KlasaA {

public:

int Oblicz();

};

Czy prawda jest, ze ...

KlasaB ob(2);

KoniecOpisu

79 OpisPytania

... Obiekt 'ob' nie bedzie mogl byc utworzony ze wzgledu na brak

konstruktora parametrycznego?

KoniecOpisu

80 OpisPytania

... zapis jest poprawny i dziedziczone pole '_Pole'

zostanie zainicjalizowane wartoscia 2?

KoniecOpisu

81 OpisPytania

... zapis jest poprawny, jednak pole o nazwie "_Pole" klasy "KlasaA"

nie bedzie dostepne z poziomu klasy pochodnej ("KlasaB")?

KoniecOpisu

OpisProblemu ====================================================

Mamy zdefiniowana klase "KlasaA" oraz zdeklarowany jest obiekt Ob:

class KlasaA {

public:

int _Pole;

};

const KlasaA Ob;

Czy prawda jest, ze ...

KoniecOpisu

82 OpisPytania

... powyzsza deklaracja obiektu 'Ob' bylaby poprawna, gdyby

w klasie zostal zadeklarowany konstruktor bezparametryczny,

np.

class KlasaA {

public:

int _Pole;

KlasaA() {}

};

KoniecOpisu

83 OpisPytania

... obiekt nie jest inicjalizowany, tak wiec nie moze byc

zadeklarowany jako staly.

KoniecOpisu

84 OpisPytania

... powyzsza deklaracja obiektu 'Ob' bylaby poprawna, gdyby

w klasie zostal zadeklarowany konstruktor postaci:

class KlasaA {

public:

int _Pole;

KlasaA(int Wartosc) { _Pole = Wartosc; }

};

KoniecOpisu

85 OpisPytania

... powyzsza deklaracja obiektu 'Ob' bylaby poprawna, gdyby

pole '_Pole' zostalo zadeklarowane jako statyczne,

tzn.:

class KlasaA {

public:

static int _Pole;

};

KoniecOpisu

86 OpisPytania

... bylaby poprawna jesli odpowiednia instrukcja zainicjalizuje

obiekt po jego utworzeniu zgodnie ze schematem:

KlasaA Ob;

jakas_instrukcja_inicjalizujaca_obiekt_Ob;

gdzie za napis "jakas_instrukcja_inicjalizujaca_obiekt_Ob" trzeba

podstawic odpowiednia instrukcje lub ciag instrukcji.

KoniecOpisu ??????????

OpisProblemu ====================================================

Mamy zdefiniowana klase "KlasaA" oraz zdeklarowany jest obiekt Ob:

class KlasaA {

public:

int _Pole;

static int _PoleStatyczne;

KlasaA() {}

};

int KlasaA::_PoleStatyczne = 0;

int main()

{

const KlasaA Ob;

Ob._Pole = 1;

Ob._PoleStatyczne = 4;

}

Czy prawda jest, ze ...

KoniecOpisu

87 OpisPytania

... ze wzgledu na to, iz obiekt 'Ob' jest zadeklarowny jako staly,

to obie operacje przypisania w funkcji 'main' sa niepoprawne.

KoniecOpisu

88 OpisPytania

... obie operacje przypisania w funkcji "main" mozna zrealizowac

pod warunkiem wykonania rzutowania za pomoca operatora static_cast.

KoniecOpisu -inaczje niż Modimo-mi się nie udało ruszyć _Pole

89 OpisPytania

... operacja zmiany wartosci pola statycznego moze byc wykonana

zawsze niezaleznie od tego czy obiekt jest staly czy nie.

Jedynym warunkiem jest dostepnosc tego pola.

KoniecOpisu

OpisProblemu ====================================================

Mamy zdefiniowana klase "KlasaX" oraz zdeklarowany jest obiekt Ob:

class KlasaX {

public:

int _Pole;

};

Czy prawda jest, ze ...

KoniecOpisu

89 OpisPytania

... w klasie tej istnieje tylko jeden domyslny konstruktor. Jest nim konstruktor

bezparametryczny.

KoniecOpisu

90 OpisPytania

... w klasie tej istnieja co najmniej trzy domyslne konstruktory.

KoniecOpisu

91 OpisPytania

... w klasie tej istnieja co najmniej dwa domyslne konstruktory.

KoniecOpisu

92 OpisPytania

... w klasie tej istnieje konstruktor bezparametryczny.

KoniecOpisu

OpisProblemu ====================================================

Mamy zdefiniowana klase "KlasaA" oraz zdeklarowany jest obiekt Ob:

class KlasaA {

public:

int _Pole;

};

Czy prawda jest, ze ...

KoniecOpisu

93 OpisPytania

... w tej klasie nie ma zdefiniowanego zadnego konstruktora,

z tego powodu nie ma rowniez konstruktorow domyslnych.

KoniecOpisu

94 OpisPytania

... w tej klasie istnieja co najmniej trzy konstruktory domyslne.

KoniecOpisu

95 OpisPytania

... w tej klasie istnieje konstruktor domyslny odpowiedzialny za

kopiowanie obiektu.

KoniecOpisu

96 OpisPytania

... mozna utworzyc obiekt tej klasy wywolujac konstruktor

bezparametryczny.

KoniecOpisu

OpisProblemu ====================================================

Mamy zdefiniowana klase "FiguraGeom" oraz zdeklarowany jest obiekt Ob:

class FiguraGeom {

public:

double _Obwod;

FiguraGeom(): _Obwod() {}

};

Czy prawda jest, ze ...

KoniecOpisu

97 OpisPytania

... w tej klasie zdefiniowanie konstruktora bezparametrycznego powoduje

uniewaznienie domyslnego konstruktora kopiujacego.

KoniecOpisu

98 OpisPytania

... w tej klasie po utworzeniu obiektu jego pole "_Obwod" bedzie

ono mialo zawsze wartosc 0, o ile zostanie uzyty konstruktor

bezparametryczny. W innym przypadku juz tak byc nie musi.

KoniecOpisu

99 OpisPytania

... w tej klasie po utworzeniu obiektu jego pole "_Obwod" bedzie ono mialo

wartosc 0 po kazdorazowym utworzeniu obiektu z wykorzystaniem konstruktora

bezparametrycznego. Jest to zagwarantowane przez standard ANSI C++.

KoniecOpisu

100 OpisPytania

... w tej klasie oprocz zdefiniowanego konstruktora bezparametrycznego

istnieja jeszcze co najmniej dwa domyslne konstruktory.

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klasy:

struct LiczbaZespolona {

float _Re, _Im;

public:

float Re() const { return _Re; }

float& Re() { return _Re; }

float Im() const { return _Im; }

float& Im() { return _Im; }

};

Czy prawda jest, ze ...

KoniecOpisu

101 OpisPytania

... metody "Re()" oraz "Im()" nie sa przeciazone, gdyz zwracaja rozny typ

wartosci.

KoniecOpisu

102 OpisPytania

... niezaleznie od sposobu utworznia obiektu tej klasy nie mozna

zmienic jego zawartosci.

KoniecOpisu

103 OpisPytania

... dla kodu przedstawionego ponizej zostanie wywolana metoda

"float LiczbaZespolona::Re() const".

float Odczyt(LiczbaZespolona& Z)

{

cout << Z.Re();

}

KoniecOpisu

104 OpisPytania

... w funkcji ponizej tworzy sie obiekt staly, ktory jest inicjalizowany

wartoscia parametru wywolania tej funkcji.

float Odczyt(const LiczbaZespolona Z)

{

cout << Z.Re();

}

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klasy oraz zapowiedz definicji funkcji:

class KlasaLiczby {

float _Liczba;

public:

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

};

void Dzialaj(const KlasaLiczby Li);

Czy prawda jest, ze ...

KoniecOpisu

105 OpisPytania

... dla wywolania:

int main()

{

KlasaLiczby Li;

Dzialaj(Li);

}

Zawartosc obiektu "Li" na pewno nie ulegnie zmianie, gdyz w zapowiedzi

definicji funkcji znajduje sie modyfikator "const". Bez niego nie ma

juz takiej gwarancji

KoniecOpisu

106 OpisPytania

... dla wywolania:

int main()

{

KlasaLiczby Li;

Dzialaj(Li);

}

Zawartosc obiektu "Li" na pewno nie ulegnie zmianie, gdyz obiek przkazywany

jest do funkcji poprzez wartosc.

KoniecOpisu

107 OpisPytania

... dla wywolania:

int main()

{

KlasaLiczby Li;

Dzialaj(Li);

}

W trakcie wywolania funkcji obiekt "Li" jest kopiowany.

KoniecOpisu

108 OpisPytania

... dla wywolania:

int main()

{

KlasaLiczby Li;

Dzialaj(Li);

}

W wartosc obiektu "Li" nie ulega zmianie. Ponadto tworzona jest jego kopia,

ktora moze byc modyfikowana wewnatrz funkcji "Dzialaj".

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klasy oraz zapowiedz definicji funkcji:

class KlasaLiczby {

float _Liczba;

public:

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

};

Czy prawda jest, ze ...

KoniecOpisu

109 OpisPytania

... rownowazna definicja tej klasy jest:

struct KlasaLiczby {

float _Liczba;

private:

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

};

KoniecOpisu

110 OpisPytania

... rownowazna definicja tej klasy jest:

struct KlasaLiczby {

float PobierzLiczbe() const { return _Liczba; }

private:

float _Liczba;

public:

float& PobierzLiczbe() { return _Liczba; }

};

KoniecOpisu

111 OpisPytania

... rownowazna definicja tej klasy jest:

class KlasaLiczby {

public:

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

private:

float _Liczba;

};

Jest to zapis zgodny ze standardem ANSI C++.

KoniecOpisu

112 OpisPytania

... rownowazna definicja tej klasy jest:

struct KlasaLiczby {

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

float _Liczba;

};

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klasy

class Wektor {

protected:

float _x, _y;

public:

Wektor(float x, float y) { _x = x; _y = y; }

Wektor Dodaj(const Wektor& W) const;

};

Czy prawda jest, ze ...

KoniecOpisu

113 OpisPytania

... jedna z roznic miedzy sekcja "private", a "protected" polega na tym,

ze w przypadku wystapienia w definicji klasy Wektor sekcji "private"

zamiast "protected" ponizsza definicja metody nie zawsze bylaby poprawna:

Wektor Wektor::Dodaj(const Wektor& W) const

{

return Wektor(_x + W._x, _y + W._y);

}

KoniecOpisu

114 OpisPytania

... rownowazna definicja klasy "Wektor" jest:

class Wektor {

float _x, _y;

public:

Wektor(float x, float y) { _x = x; _y = y; }

Wektor Dodaj(const Wektor& W) const;

};

KoniecOpisu

115 OpisPytania

... w definicji metody "Dodaj", przedstawionej ponizej, mozna

odwolywac sie do pol chronionych innych obiektow tej samej klasy.

Jest to prawdziwe dla dowolnej metody, ktora zdefiniowana bylaby

dla dla klasy "Wektor".

Wektor Wektor::Dodaj(const Wektor& W) const

{

return Wektor(_x + W._x, _y + W._y);

}

KoniecOpisu

116 OpisPytania

... sekcja "protected" nie ma zadnego znaczenia, gdy w metodach

dowolujemy sie do pol, ktore wraz z metodami sa elementami definicji

tej samej klasy. Przykladem moze byc odwolanie sie do pol prywatnych

"_x" i "_y" w konstruktorze klasy "Wektor".

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klasy i deklaracja pola statycznego:

class KlasaLiczby {

protected:

static int _IloscLiczb;

public:

float _Liczba;

KlasaLiczby(): _Liczba() { ++_IloscLiczb; }

~KlasaLiczby() { --_IloscLiczb; }

};

int KlasaLiczby::_IloscLiczb;

Czy prawda jest, ze ...

KoniecOpisu

117 OpisPytania

... po utworzeniu obiektu klasy "KlasaLiczby" pola "_IloscLiczb"

i "_Liczba" beda mialy zawsze rozne wartosci.

KoniecOpisu

118 OpisPytania

... dodanie nowego pola statycznego moze prowadzic do zwiekszenia

rozmiaru obiektu.

KoniecOpisu

119 OpisPytania

... w konstruktorze nie jest inicjalizowane pole "_Liczba". Moze sie

wiec zdarzyc, ze jego wartosc po utworzeniu obiektu bedzie dowolna.

Aczkolwiek zazwyczaj bedzie to wartosc 0.

KoniecOpisu

120 OpisPytania

... w tym przypadku pole statyczne "_IloscLiczb" jest niejawnie

inicjalizowane ta sama wartoscia jak pole "_Liczba".

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klas i zapowiedz definicji funkcji:

class FiguraGeometryczna {

protected:

float _WsplrzednaSrodka_x, _WsplrzednaSrodka_y;

};

class Kwadrat: public FiguraGeometryczna {

public:

float _RozmiarBoku;

};

void Dzialaj( FiguraGeometryczna Fig );

Czy prawda jest, ze ...

KoniecOpisu

121 OpisPytania

... wywolanie funkcji przedstawione ponizej

int main()

{

Kwadrat Kw;

Dzialaj(Kw);

}

moze byc nieprawidlowe, choc nie zawsze to zasygnalizuje kompilator.

Powodem sa rozne typy obiektu i parametru formalnego.

KoniecOpisu

122 OpisPytania

... wywolanie funkcji przedstawione ponizej

int main()

{

Kwadrat Kw;

Dzialaj(Kw);

}

niezaleznie od definicji funkcji "Dzialaj" nigdy nie spowoduje ona

zadnych zmian w obiekcie "Kw".

KoniecOpisu

123 OpisPytania

... wywolanie funkcji przedstawione ponizej

int main()

{

Kwadrat Kw;

Dzialaj(Kw);

}

do funkcji "Dzialaj" przekazywana jest kopia podobiektu

klasy "FiguraGeomtryczna", ktory zawarty jest w obiekcie

klasy "Kwadrat".

KoniecOpisu - sprawdzane z dr Kreczmerem

124 OpisPytania

... wywolanie funkcji przedstawione ponizej

int main()

{

Kwadrat Kw;

Dzialaj(Kw);

}

w zaleznosci od definicji funkcji "Dzialaj" mozna odwolac sie

do obiektu "Kw", choc nie bedzie go mozna zmienic.

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dana definicja klas i zapowiedz definicji funkcji:

class Liczba {

public:

Liczba() { _wLiczba = new float; }

~Liczba() { delete _wLiczba; }

Liczba& operator = (const Liczba& L);

private:

float *_wLiczba;

};

Liczba& Liczba::operator = (const Liczba& L)

{

*_wLiczba = *L._wLiczba;

return *this;

}

Czy prawda jest, ze ...

KoniecOpisu

125 OpisPytania

... dla kodu przedstawionego ponizej

int main()

{

Liczba L1;

Liczba L2 = L1;

}

operacja przypisania wartosci L1 do L2 zostanie wykonana poprawnie

dzieki przeciazeniu operatora "=". Niemniej uzycie niektorych

kompilatorow, ktore nie sa w pelni zgodne z ANSI C++ moze powodowac

bledne wykonanie programu.

KoniecOpisu

126 OpisPytania

... dla kodu przedstawionego ponizej

int main()

{

Liczba *wL = new Liczba;

Liczba L1 = *wL;

}

operacja tworzenia obiektu L1 nie wykorzystuje konstruktora

bezparametrycznego, ani tez przeciazenia operatora "=".

KoniecOpisu

127 OpisPytania

... dla kodu przedstawionego ponizej

int main()

{

Liczba *wL = new Liczba;

Liczba L1 = *wL;

}

przedstawiona konstrukcja jest prawidlowa i destrukcja obiektow

przebiegnie bez zadnych bledow. Byloby jednak lepiej, aby jawnie

usuwac obiekt *wL poprzez uzycie operatora "delete", tzn.

delete wL;

KoniecOpisu

128 OpisPytania

... konstrukcja klasy nie zapewnia poprawnego dzialania

programu w przypadku poslugiwania sie funkcjami z parametrami

klasy "Liczba" przekazywanymi przez wartosc, np.

void Dzialaj( Liczba L )

{

...

}

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dany nastepujacy fragment kodu

class Klasa {

int _Kod;

public:

const Klasa& Metoda1() const { return *this; }

Klasa& Metoda2() { return *this; }

const Klasa& Metoda3() { return *this; }

};

Czy prawda jest, ze ...

KoniecOpisu

129 OpisPytania

... ze ponizszy ciag wywolan

int main()

{

Klasa Ob;

Ob.Metoda1().Metoda2().Metoda3();

}

jest niepoprawny, gdyz metode mozna wywolywac tylko dla

obiektu, a nie wyniku zwracanego przez inna metode.

KoniecOpisu

130 OpisPytania

... ze ponizszy ciag wywolan

int main()

{

Klasa Ob1;

const Klasa Ob2;

Ob2 = Ob1.Metoda2();

}

doprowadzi do sytuacji, ze zmiennej "Ob2" znajdzie sie obiekt,

ktory bedzie modyfikowalny.

KoniecOpisu

131 OpisPytania

... ze dla ponizszego ciagu wywolan

int main()

{

Klasa Ob;

const Klasa &Ref_Ob = Ob;

Ref_Ob.Metoda1();

Ob.Metoda2();

}

zarowno "Metoda1" jak tez "Metoda2" zwraca referencje do tego samego

obiektu.

KoniecOpisu

132 OpisPytania

... ze dla ponizszego ciagu wywolan

int main()

{

Klasa Ob1;

Klasa Ob2;

Ob1.Metoda2() = Ob2.Metoda1();

}

po wykonaniu tej operacji zawartosc obu obiektow bedzie jednakowa.

KoniecOpisu

133 OpisPytania

... ze dla ponizszego ciagu wywolan

int main()

{

Klasa Ob1;

Klasa Ob2;

Ob2.Metoda1() = Ob1.Metoda2();

}

po wykonaniu tej operacji zawartosc obu obiektow bedzie jednakowa.

KoniecOpisu

134 OpisPytania

... ze ponizszy ciag wywolan

int main()

{

Klasa Ob;

Ob.Metoda1().Metoda2().Metoda3();

}

jest niepoprawny, gdyz metode modyfikujaca obiekt

mozna wywolywac tylko dla obiektu modyfikowalnego.

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dany nastepujacy fragment kodu

int main()

{

try {

throw std::cout;

}

catch (std::ostream& OStrm) {

cout << "Obsluga: 1" << endl;

}

catch (std::istream& OStrm) {

cout << "Obsluga: 2" << endl;

}

}

Czy prawda jest, ze ...

KoniecOpisu

KILKASET STRON NA TEMAT: http://books.google.com/books?id=nnRog4I-3jwC&pg=PA36&lpg=PA36&dq=streams+exceptions+cout&source=bl&ots=KBB32yOSlT&sig=W-tjglchYbh6GJ_iHE39nIPdMg4&hl=pl&ei=fvMeSszQGo_KjAeYvLm3DQ&sa=X&oi=book_result&ct=result&resnum=1

ale i tak nie dam sobie niczego uciąć za te odpowidzi

135 OpisPytania

... zapis jest niepoprawny, gdyz nie mozna zglaszac jako wyjatkow

obiektow z biblioteki standardowej.

KoniecOpisu-można wysłać wyjątek throw &cout; i złapać go np. catch(...){}

136 OpisPytania

... zapis jest niepoprawny, gdyz strumieni nie mozna przekazywac

do metod poprzez wartosc.

KoniecOpisu ://założywszy, że catch() to nie jest metoda

137 OpisPytania

... zapis jest niepoprawny, gdyz jako wyjatku nie mozna zglaszac

w jakiejkolwiek formie strumienia standardowego, tzn. bezposrednio

jako obiekt lub posrednio poprzez zmienne referencjna lub wskaznik.

KoniecOpisu-można wysłać wyjątek throw &cout; i złapać go np. catch(...){}

138 OpisPytania

... mozliwa jest modyfikacja zgloszenia obiektu std::cout bez

wprowadzania dodatkowych definicji klas, tak aby ktoras z

istniejacych sekcji "catch" przechwycila go.

KoniecOpisu // potwierdzone przez dr K.

OpisProblemu ====================================================

Niech bedzie dany nastepujacy fragment kodu

class FiguraGeometryczna {

public:

double _Pole;

};

class Kwadrat: public FiguraGeometryczna {

public:

double _DlugoscBoku;

};

Czy prawda jest, ze ...

KoniecOpisu

139 OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w gore".

int main()

{

Kwadrat Kw;

FiguraGeometryczna *wFig = &Kw;

}

KoniecOpisu

140 OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w dol".

int main()

{

Kwadrat Kw;

FiguraGeometryczna *wFig = &Kw;

}

KoniecOpisu

141 OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w dol".

int main()

{

FiguraGeometryczna Fig;

Kwadrat *wKw = &Fig;

}

KoniecOpisu

142 OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w gore".

int main()

{

FiguraGeometryczna Fig;

Kwadrat *wKw = &Fig;

}

KoniecOpisu

143 OpisPytania

... w przedstawionym ponizej zapisie poprzez zmienna "Fig" mamy dostep

do podobiektu znawartego w obiekcie "Kw".

int main()

{

Kwadrat Kw;

FiguraGeometryczna &Fig = Kw;

}

KoniecOpisu

144 OpisPytania

... w przedstawionym ponizej zapisie poprzez zmienna "Fig" mamy dostep

do podobiektu znawartego w obiekcie "Kw".

int main()

{

Kwadrat Kw;

FiguraGeometryczna Fig = Kw;

}

KoniecOpisu

145 OpisProblemu ====================================================

Niech bedzie dany nastepujacy fragment kodu

class FiguraGeometryczna {

public:

double _Pole;

double ObliczPole() { return _Pole; }

};

class Kwadrat: public FiguraGeometryczna {

public:

double _DlugoscBoku;

double ObliczPole(double Skala)

{ return pow(Skala*_DlugoscBoku,2); }

};

Czy prawda jest, ze ...

KoniecOpisu

146 OpisPytania

... ponizszy zapis jest nieprawidlowy i nie ma sposobu, aby

nie modyfikujac definicji klas i dysponujac obiektem klasy

"Kwadrat" odwolac sie do metody "ObliczPole()" z klasy

"FiguraGeometryczna".

int main()

{

Kwadrat Kw;

Kw.ObliczPole();

}

KoniecOpisu

147 OpisPytania

... ponizszy zapis jest nieprawidlowy. Dysponujac referencja do

obiektu klasy "FiguraGeometryczna" i nie dokonujac zadnych

rzutowan mozna odwolac sie tylko do metody "ObliczPole()",

a nie "ObliczPole(double)".

int main()

{

Kwadrat Kw;

FiguraGeometryczna &Fig = Kw;

Fig.ObliczPole(1.0);

}

KoniecOpisu

OpisProblemu ====================================================

Niech bedzie dany nastepujacy fragment kodu

class FiguraGeometryczna {

double _Pole;

double ObliczPole() { return _Pole; }

public:

};

class Kwadrat: public FiguraGeometryczna {

double _DlugoscBoku;

public:

double ObliczPole(double Skala)

{ return pow(Skala*_DlugoscBoku,2); }

};

Czy prawda jest, ze ...

KoniecOpisu

148 OpisPytania

... ponizszy zapis jest nieprawidlowy i nie ma sposobu, aby

dysponujac obiektem klasy "Kwadrat" odwolac sie do

metody "ObliczPole()" z klasy "FiguraGeometryczna".

int main()

{

Kwadrat Kw;

Kw.ObliczPole();

}

KoniecOpisu

OpisPytania

149 ... ponizszy zapis jest nieprawidlowy. Dysponujac referencja do

obiektu klasy "FiguraGeometryczna" i dokonujac rzutowan mozna

odwolac sie tylko do metody "ObliczPole(double)", a nie "ObliczPole()".

int main()

{

Kwadrat Kw;

FiguraGeometryczna &Fig = Kw;

Fig.ObliczPole();

}

KoniecOpisu(?)

150 OpisPytania

... ponizszy zapis jest nieprawidlowy. Dysponujac referencja do

obiektu klasy "FiguraGeometryczna" i nie dokonujac zadnych

rzutowan mozna odwolac sie tylko do metody "ObliczPole()",

a nie "ObliczPole(double)".

int main()

{

Kwadrat Kw;

FiguraGeometryczna &Fig = Kw;

Fig.ObliczPole(1.0);

}

KoniecOpisu

OpisProblemu ====================================================

Niech beda dane prototypy dwoch funkcji:

void Wylicz( float Param1, double Param2 );

void Wylicz( double Param1, float Param2 );

Zakladajac, ze w programie znajduja sie poprawne ich definicje

i ze nie ma innego przeciazenia funcji "Wylicz",

czy prawda jest, ze ...

KoniecOpisu

151 OpisPytania

... w funkcji main przedstawionej ponizej:

int main()

{

Wylicz(1.2, 'c');

}

na ogol zostanie wywolana druga z przedstawionych funkcji,

tzn. Wylicz( double Param1, float Param2 );

Zalezy to jednak od kompilatora i od domyslnej interpretacji

uzytej w liscie parametrow stalej liczbowej.

Tak bedzie, o ile kompilator jest zgodny z norma ANSI C++.

KoniecOpisu

152 OpisPytania

... w funkcji main przedstawionej ponizej:

enum PoryRoku { Wiosna, Lato, Jesien, Zima };

int main()

{

Wylicz( Wiosna , 1.2);

}

zostanie wywolana pierwsza z przedstawionych funkcji,

tzn. Wylicz( float Param1, double Param2 );

O wywolaniu tej funkcji decyduje uzyta stala liczbowa.

Tak bedzie, o ile kompilator jest zgodny z norma ANSI C++.

KoniecOpisu



Wyszukiwarka

Podobne podstrony:
kolo I ver2
SZKOLNE KOŁO CARITAS
Pedodoncja seminarium dziecko jako pacjent ver2
kolo zebata m
Koło Malujda Rybak
I kolo z MPiS 2010 11 Zestaw 1
Biologia mol 2 koło luty 2013
kolo 2
koło 15 zad 1
Kolo 2
horo na zboja, TI kolo a 06o9
koło 1
Bazy danych kolo 2 1 id 81756 Nieznany

więcej podobnych podstron