KOŁO, ekranowka, OpisProblemu ====================================================


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

OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

KoniecOpisu

NIE

OpisPytania

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

KoniecOpisu

TAK

OpisPytania

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

nie jest dozwolona.

KoniecOpisu

TAK

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

NIE

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

OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

KoniecOpisu TAK

OpisPytania

... na wyjsciu standardowym pojawi sie napis:

Napis1 Napis2

Jednak program moze spowodowac blad wykonania,

gdyz operacje tego typu nie sa dozwolone.

KoniecOpisu NIE

OpisPytania

... moze powstac blad, aczkolwiek nie musi,

gdyz "strumien2" jest referencja do referencji.

KoniecOpisu NIE

OpisPytania

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

wykonujemy operacje na strumieniu wyjscia standardowego reprezentowanym

przez obiekt "cout".

KoniecOpisu TAK

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

OpisPytania

... w programie wystepuje niezgodnosci typow w podstawieniu:

FiguraGeom *wFig = wKwd;

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

KoniecOpisu NIE

OpisPytania

... na ekranie pokaze sie napis:

Kwadrat

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

KoniecOpisu TAK

OpisPytania

... ponizsze podstawienie moze spowodowac blad.

FiguraGeom *wFig = wKwd;

Powodem jest wystepowanie metod wirtualnych w definicjach klas.

KoniecOpisu NIE

OpisPytania

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

KoniecOpisu TAK

OpisPytania

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

destruktorami wirtualnymi.

KoniecOpisu TAK

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

OpisPytania

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

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

nie ma zadnego znaczenia.

KoniecOpisu TAK

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 NIE

OpisPytania

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

braku slowa kluczowego "virtual".

KoniecOpisu NIE

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 NIE

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

... w programie w linii:

KlasaB *wObiektB = wObiektA;

wystepuje niedozwolona proba rzutowania "w dol".

KoniecOpisu TAK

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 TAK

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 NIE

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 NIE

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

OpisPytania

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

wirtualna, co wynika z definicji metody o tej samej nazwie

w klasie "KlasaB".

KoniecOpisu NIE

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 TAK

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

OpisPytania

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

przypadki tego typu niezaleznie od zlozonosci wewnetrznej struktury obiektu

i podobiektu.

KoniecOpisu TAK

OpisPytania

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

beda zdefiniowane destruktory wirtualne.

KoniecOpisu NIE

OpisPytania

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

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

klase "KlasaB".

KoniecOpisu NIE

OpisPytania

... operacja porownania powoduje niejawne rzutowanie zawartosci zmiennej

wskaznikowej "wObiektB" na wskaznik typu: KlasaA*

KoniecOpisu NIE

OpisPytania

... w programie wykorzystane jest niejawne rzutowanie wskaznikow.

W tym przypadku niejawne rzutowanie nie jest zwiazane z hierarchia

dziedziczenia klas.

KoniecOpisu TAK

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

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 TAK

OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

Tab[1] == Tab[5]

KoniecOpisu NIE

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

OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

&Zm == &Tab[1]

KoniecOpisu NIE

OpisPytania

... po wykonaniu tego kodu zawsze zachodzi warunek:

Zm == Tab[1]

KoniecOpisu NIE

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

OpisPytania

... w podstawieniu przedstawionym ponizej

Lst.back()[1] = 5;

nastepuje proba modyfikacji drugiej skladowej wektora,

ktory jest piatym elementem listy?

KoniecOpisu TAK

OpisPytania

... wszystkie wektory wchodzace w sklad utworzonej listy maja

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

KoniecOpisu TAK

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

OpisPytania

... wykonane podstawienie spowoduje utworzenie drugiej skladowej

w ostatnim wektorze listy 'Lst'.

KoniecOpisu NIE

OpisPytania

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

po piec skladowych.

KoniecOpisu NIE

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

OpisPytania

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

bedzie wartosc 10.

KoniecOpisu NIE

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 TAK

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 TAK

OpisPytania

... w funkcji 'main' wystepuje wywolanie konstruktora

klasy 'Wektor2f' oraz jedna niejawna konwersja

obiektu klasy 'Wektor2f' do zmiennej typu float.

KoniecOpisu TAK

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

OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

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

KoniecOpisu TAK

OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

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

KoniecOpisu NIE

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

OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

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

KoniecOpisu TAK

OpisPytania

... po wykonaniu tego kodu prawdziwy bedzie warunek:

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

KoniecOpisu NIE

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

OpisPytania

... wskaznik "wskA" zawiera adres pierwszego elementu

dostepnego poprzez obiekt "Wekt"?

KoniecOpisu TAK

OpisPytania

... wskaznik "wskB" zawiera adres ostatniego elementu

dostepnego poprzez obiekt "Wekt"?

KoniecOpisu NIE

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

OpisPytania

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

*++Lst.begin();

KoniecOpisu TAK

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 NIE

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

OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( KlasaPochodna() );

KoniecOpisu TAK

OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( new KlasaPochodna() );

KoniecOpisu NIE

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

OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

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

KoniecOpisu NIE

OpisPytania

... ponizej zaprezentowane wywolanie funkcji jest prawidlowe?

funkcja( KlasaBazowa() );

KoniecOpisu NIE

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

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 TAK

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 NIE

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

Dana jest nastepujaca deklaracja zmiennych:

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

KoniecOpisu

OpisPytania

Czy po wykonaniu nastepujacych operacji:

kk=2;

ll=5;

mm=7;

zmienna kk bedzie miala wartosc 7 ?

KoniecOpisu TAK

OpisPytania

Czy spelniony jest ponizszy warunek?

&kk == &mm

KoniecOpisu TAK

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

Nastepne pytanie dotyczyc bedzie referencji i zmiennych referencyjnych:

KoniecOpisu

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 TAK

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 NIE

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

Pytanie dotyczyc bedzie przeciazania funkcji i metod.

KoniecOpisu

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 NIE

OpisPytania

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

funkcje, a nie mozna przeciazac operatorow arytmetycznych

poza obrebem (definicji) danej klasy?

KoniecOpisu NIE

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 TAK

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

Pytanie dotyczyc bedzie hermetyzacji danych i metod

oraz funkcji zaprzyjaznionych

KoniecOpisu

OpisPytania

Czy hermetyzacja komponentow klasy (pol lub metod) ma na

celu zabezpieczenie ich przed modyfikacja lub wywolaniem przez

inne metody tej samej klasy?

KoniecOpisu NIE

OpisPytania

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

dostepne sa dla funkcji zaprzyjaznionych z ta klasa?

KoniecOpisu TAK

OpisPytania

Czy dozwolona jest modyfikacja pol prywatnych danej

klasy w funkcjach zaprzyjaznionych z ta klasa?

KoniecOpisu TAK

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

Pytanie dotyczyc bedzie konstruktorow i destruktorow.

KoniecOpisu

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 NIE

OpisPytania

Czy jedna z operacji powodujacej niejawne wywolanie

konstruktora danej klasy jest dynamiczna alokacja

obiektu tejze klasy za pomoca operatora "new" ?

KoniecOpisu TAK

OpisPytania

Czy destruktory sa zawsze wywolywane niejawnie w przypadku

dla zmiennych statycznych, gdy sterowanie osiagnie koniec

zakresu waznosci deklaracji danego obiektu.

KoniecOpisu NIE

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

Pytanie dotyczyc bedzie konstruktorow i destruktorow.

KoniecOpisu

OpisPytania

Czy prawda jest, ze:

Destruktor powinien miec taka sama

liste parametrow w wywolaniu jak konstruktor.

KoniecOpisu NIE

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 TAK

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

Czy konstruktor ...

KoniecOpisu

OpisPytania

... jest metoda skladowa klasy, ktora

zawsze inicjalizuje pola tej klasy?

KoniecOpisu NIE

OpisPytania

... ma taka sama nazwe jak nazwa klasy i

moze byc wywolany jawnie jak kazda metoda.

KoniecOpisu TAK

OpisPytania

... moze byc zadeklarowany w ponizszy sposob:

class Klasa {

Klasa(Klasa);

public:

};

KoniecOpisu NIE

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

Czy przciazanie metod klasy ...

KoniecOpisu

OpisPytania

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

KoniecOpisu NIE

OpisPytania

... jest zabronione w przypadku destruktora.

KoniecOpisu TAK

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 NIE

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

Niech bedzie dana definicja:

int numer::funkcja(int i)

{

...

}

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

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

lub tez unii o nazwie "numer"?

KoniecOpisu NIE

OpisPytania

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

jest umieszczona na pewno poza blokiem definicji tej klasy?

KoniecOpisu TAK

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

OpisPytania

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

konstruktora parametrycznego?

KoniecOpisu TAK

OpisPytania

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

zostanie zainicjalizowane wartoscia 2?

KoniecOpisu NIE

OpisPytania

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

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

KoniecOpisu NIE

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

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

class KlasaA {

public:

int _Pole;

};

const KlasaA Ob;

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

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

w klasie zostal zadeklarowany konstruktor bezparametryczny,

np.

class KlasaA {

public:

int _Pole;

KlasaA() {}

};

KoniecOpisu TAK

OpisPytania

... obiekt nie jest inicjalizowany, tak wiec nie moze byc zadeklarowany jako staly.

KoniecOpisu TAK

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 NIE

OpisPytania

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

pole '_Pole' zostalo zadeklarowane jako statyczne,

tzn.:

class KlasaA {

public:

static int _Pole;

};

KoniecOpisu NIE

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 TAK

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

OpisPytania

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

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

KoniecOpisu NIE

OpisPytania

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

pod warunkiem wykonania rzutowania za pomoca operatora static_cast.

KoniecOpisu NIE

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 NIE

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

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

class KlasaX {

public:

int _Pole;

};

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

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

bezparametryczny.

KoniecOpisu NIE

OpisPytania

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

KoniecOpisu NIE

OpisPytania

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

KoniecOpisu TAK

OpisPytania

... w klasie tej istnieje konstruktor bezparametryczny.

KoniecOpisu TAK

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

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

class KlasaA {

public:

int _Pole;

};

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

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

z tego powodu nie ma rowniez konstruktorow domyslnych.

KoniecOpisu NIE

OpisPytania

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

KoniecOpisu NIE

OpisPytania

... w tej klasie istnieje konstruktor domyslny odpowiedzialny za

kopiowanie obiektu.

KoniecOpisu TAK

OpisPytania

... mozna utworzyc obiekt tej klasy wywolujac konstruktor

bezparametryczny.

KoniecOpisu TAK

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

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

class FiguraGeom {

public:

double _Obwod;

FiguraGeom(): _Obwod() {}

};

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

... w tej klasie zdefiniowanie konstruktora bezparametrycznego powoduje

uniewaznienie domyslnego konstruktora kopiujacego.

KoniecOpisu NIE

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 TAK

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 TAK

OpisPytania

... w tej klasie oprocz zdefiniowanego konstruktora bezparametrycznego

istnieja jeszcze co najmniej dwa domyslne konstruktory.

KoniecOpisu NIE

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

OpisPytania

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

wartosci.

KoniecOpisu NIE

OpisPytania

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

zmienic jego zawartosci.

KoniecOpisu TAK

OpisPytania

... dla kodu przedstawionego ponizej zostanie wywolana metoda

"float LiczbaZespolona::Re() const".

float Odczyt(LiczbaZespolona& Z)

{

cout << Z.Re();

}

KoniecOpisu NIE

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 NIE

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

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

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

OpisPytania

... dla wywolania:

int main()

{

KlasaLiczby Li;

Dzialaj(Li);

}

W trakcie wywolania funkcji obiekt "Li" jest kopiowany.

KoniecOpisu

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

OpisPytania

... rownowazna definicja tej klasy jest:

struct KlasaLiczby {

float _Liczba;

private:

float PobierzLiczbe() const { return _Liczba; }

float& PobierzLiczbe() { return _Liczba; }

};

KoniecOpisu

OpisPytania

... rownowazna definicja tej klasy jest:

struct KlasaLiczby {

float PobierzLiczbe() const { return _Liczba; }

private:

float _Liczba;

public:

float& PobierzLiczbe() { return _Liczba; }

};

KoniecOpisu

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

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

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

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

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

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

OpisPytania

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

i "_Liczba" beda mialy zawsze rozne wartosci.

KoniecOpisu

OpisPytania

... dodanie nowego pola statycznego moze prowadzic do zwiekszenia

rozmiaru obiektu.

KoniecOpisu

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OpisPytania

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

obiektow z biblioteki standardowej.

KoniecOpisu

OpisPytania

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

do metod poprzez wartosc.

KoniecOpisu

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

OpisPytania

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

wprowadzania dodatkowych definicji klas, tak aby ktoras z

istniejacych sekcji "catch" przechwycila go.

KoniecOpisu

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

Niech bedzie dany nastepujacy fragment kodu

class FiguraGeometryczna {

public:

double _Pole;

};

class Kwadrat: public FiguraGeometryczna {

public:

double _DlugoscBoku;

};

Czy prawda jest, ze ...

KoniecOpisu

OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w gore".

int main() {

Kwadrat Kw;

FiguraGeometryczna *wFig = &Kw; }

KoniecOpisu

OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w dol".

int main() {

Kwadrat Kw;

FiguraGeometryczna *wFig = &Kw; }

KoniecOpisu

OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w dol".

int main() {

FiguraGeometryczna Fig;

Kwadrat *wKw = &Fig; }

KoniecOpisu

OpisPytania

... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie

"w gore".

int main() {

FiguraGeometryczna Fig;

Kwadrat *wKw = &Fig; }

KoniecOpisu

OpisPytania

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

do podobiektu znawartego w obiekcie "Kw".

int main() {

Kwadrat Kw;

FiguraGeometryczna &Fig = Kw; }

KoniecOpisu

OpisPytania

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

do podobiektu znawartego w obiekcie "Kw".

int main() {

Kwadrat Kw;

FiguraGeometryczna Fig = Kw; }

KoniecOpisu

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

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

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

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

... 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

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

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

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:
BHP przy obsludze monitorow ekranowych
SZKOLNE KOŁO CARITAS
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
hih koło, k1 0506

więcej podobnych podstron