„Prog2 2. ZH kikérdező” változatai közötti eltérés
A VIK Wikiből
Prog2 új 2. ZH kikérdező |
a még több kérdés és javítások |
||
(4 közbenső módosítás ugyanattól a felhasználótól nincs mutatva) | |||
1. sor: | 1. sor: | ||
{{Vissza|Programozás alapjai II.}} | {{Vissza|Programozás alapjai II.}} | ||
{{Kvízoldal | {{Kvízoldal | ||
|cím=Prog2 2. ZH | |cím=Prog2 2. ZH kikérdező | ||
|pontozás=}} | |pontozás=}} | ||
11. sor: | 11. sor: | ||
# Gyakran előforduló problémák általános, újrafelhasználható megoldása. | # Gyakran előforduló problémák általános, újrafelhasználható megoldása. | ||
== Mi az adapter tervezési minta lényege? == | |||
{{kvízkérdés|típus=egy|válasz=2}} | |||
# Grafikus elem: a taskbar-hoz való illesztést végzi. | |||
# Lehetővé teszi két nem kompatibilis osztály együttműködését. | |||
# Örökbefogadás modellezésére szolgál. | |||
# Objektumorientált programozás alapelve. | |||
== Mi a funktor? == | |||
{{kvízkérdés|típus=egy|válasz=3}} | |||
# Objektumorientált programozás alapelve. | |||
# Funkcionális programozás alapelve. | |||
# Függvényként használható objektum. | |||
# Grafikus elem: Funkcionális tortadiagram. | |||
== Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre! == | == Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre! == | ||
{{kvízkérdés|típus=több|válasz=1,3 | {{kvízkérdés|típus=több|válasz=1,3}} | ||
# A sablon feldolgozása fordítási időben történik. | # A sablon feldolgozása fordítási időben történik. | ||
# A try catch blokkban deklarált objektumokat a blokk után explicit módon meg kell szüntetni. | # A try catch blokkban deklarált objektumokat a blokk után explicit módon meg kell szüntetni. | ||
# A destruktor mindig meghívja a közvetlen ősosztály destruktorát, ha nincs virtuális öröklés. | # A destruktor mindig meghívja a közvetlen ősosztály destruktorát, ha nincs virtuális öröklés. | ||
# Statikus tagfüggvény nem lehet inline. | # Statikus tagfüggvény nem lehet inline. | ||
== Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre! == | |||
{{kvízkérdés|típus=több|válasz=1,2}} | |||
# C++-ban lehet függvényt balértékként használni. | # C++-ban lehet függvényt balértékként használni. | ||
# Sablonnak lehet sablonparamétere is. | |||
# Az implicit értékadó operátor nem hívja meg az ősosztály értékadó operátorát, ezért örökléskor mindig kell értékadó operátort deklarálni. | |||
# Konstruktor nem dobhat kivételt. | |||
== Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre! == | |||
{{kvízkérdés|típus=több|válasz=2,3}} | |||
# A dynamic_cast hiba esetén mindig kivételt dob. | |||
# Az STL asszociatív tárolói rendezetten tárolnak. | |||
# A const_iterator értéke megváltoztatható, csak az adat nem változtatható meg, amire az iterátor hivatkozik. | |||
# A perzisztens objektum állapota állandó, azaz az állapota nem változtatható meg. | |||
== Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre! == | |||
{{kvízkérdés|típus=több|válasz=3}} | |||
# Az adapter tervezési minta csak örökléssel valósítható meg. | |||
# A kivételosztályokat kötelező az std::exception osztályból származtatni. | |||
# Referencia típusú, nem statikus tagváltozó csak inicializáló listán inicializálható paraméterként átadott értékkel. | |||
# Az objektumok szerializációját a C++ automatikusan biztosítja, csupán a Serializable osztályból kell származtatni. | |||
== Melyik állítás igaz? == | |||
{{kvízkérdés|típus=egy|válasz=4}} | |||
# Egy osztály privát adatát közvetlenül csak a tagfüggvények érhetik el. | |||
# Egy osztály privát adatát közvetlenül csak a tagfüggvények és a leszármazott osztályok tagfüggvényei érhetik el. | |||
# Egy osztály privát adatát csak a leszármazott osztályok tagfüggvényei érhetik el. | |||
# Egy osztály privát adatát közvetlenül csak a tagfüggvények és a barát függvények érhetik el. | |||
== Adott a következő deklaráció: == | |||
<pre style="font-family:monospace;font-size: larger"> | |||
const char *p; | |||
</pre> | |||
=== Igaz, vagy hamis? === | |||
p pointerrel elérhető memóriaterület nem változtatható meg. | |||
{{kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Adott a következő kódrészlet: == | |||
<pre style="font-family:monospace;font-size: larger"> | |||
int a1 = 1; int b1 = 2; | |||
int &tmp = a1; | |||
a1 = b1; | |||
b1= tmp; | |||
</pre> | |||
=== A kódrészlet lefutása után melyik állítás helyes? === | |||
{{kvízkérdés|típus=egy|válasz=4}} | |||
# a1 == 1 és b1 == 2 | |||
# a1 == 2 és b1 == 1 | |||
# a1 == 1 és b1 == 1 | |||
# a1 == 2 és b1 == 2 | |||
== Adott a következő deklaráció: == | == Adott a következő deklaráció: == | ||
46. sor: | 113. sor: | ||
# A kódrészlet hibás pa változó nem kaphat értékül B objektumra mutató pointert. | # A kódrészlet hibás pa változó nem kaphat értékül B objektumra mutató pointert. | ||
== Adott a következő deklaráció: == | |||
<pre style="font-family:monospace;font-size: larger"> | |||
struct A { | |||
virtual void foo() { | |||
std::cout << "A\n"; | |||
} | |||
void bar() { foo(); } | |||
}; | |||
struct B : public A { | |||
void foo() { | |||
std::cout << "B\n"; | |||
} | |||
}; | |||
</pre> | |||
=== Mit ír ki a következő kódrészlet? === | |||
<pre style="font-family:monospace;font-size: larger"> | |||
A* pa = new B; | |||
pa->A::foo(); | |||
</pre> | |||
{{kvízkérdés|típus=egy|válasz=1}} | |||
# A | |||
# A kódrészlet hibás pa változó nem kaphat értékül B objektumra mutató pointert. | |||
# B | |||
73. sor: | 165. sor: | ||
# A kódrészlet hibás, mert a B osztálynak nincs bar() tagfüggvénye. | # A kódrészlet hibás, mert a B osztálynak nincs bar() tagfüggvénye. | ||
# B | # B | ||
== Adott a következő deklaráció: == | == Adott a következő deklaráció: == | ||
92. sor: | 182. sor: | ||
# Az 5. sor hibás, mert konstans tagfüggvény nem módosíthatja az objektum állapotát. | # Az 5. sor hibás, mert konstans tagfüggvény nem módosíthatja az objektum állapotát. | ||
# Az 5. sor hibás, mert nem lehet referencia típusú konstans függvény. | # Az 5. sor hibás, mert nem lehet referencia típusú konstans függvény. | ||
== C++ nyelvben a konstruktor lehet: == | |||
{{kvízkérdés|típus=több|válasz=2,3,7}} | |||
# statikus konstruktor | |||
# paraméter nélkül hívható, vagy default konstruktor | |||
# egy vagy több paraméterrel hívható konstruktor | |||
# konstans konstruktor | |||
# virtuális konstruktor | |||
# értékadó konstruktor | |||
# másoló konstruktor | |||
# funkcionális konstruktor |
A lap jelenlegi, 2021. május 15., 19:21-kori változata
Mi a tervezési minta?
- Ismétlődő kódrészlet.
- Objektumorientált programozás alapelve.
- Grafikus elem: a háttér grafikus mintázata.
- Gyakran előforduló problémák általános, újrafelhasználható megoldása.
Mi az adapter tervezési minta lényege?
- Grafikus elem: a taskbar-hoz való illesztést végzi.
- Lehetővé teszi két nem kompatibilis osztály együttműködését.
- Örökbefogadás modellezésére szolgál.
- Objektumorientált programozás alapelve.
Mi a funktor?
- Objektumorientált programozás alapelve.
- Funkcionális programozás alapelve.
- Függvényként használható objektum.
- Grafikus elem: Funkcionális tortadiagram.
Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre!
- A sablon feldolgozása fordítási időben történik.
- A try catch blokkban deklarált objektumokat a blokk után explicit módon meg kell szüntetni.
- A destruktor mindig meghívja a közvetlen ősosztály destruktorát, ha nincs virtuális öröklés.
- Statikus tagfüggvény nem lehet inline.
Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre!
- C++-ban lehet függvényt balértékként használni.
- Sablonnak lehet sablonparamétere is.
- Az implicit értékadó operátor nem hívja meg az ősosztály értékadó operátorát, ezért örökléskor mindig kell értékadó operátort deklarálni.
- Konstruktor nem dobhat kivételt.
Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre!
- A dynamic_cast hiba esetén mindig kivételt dob.
- Az STL asszociatív tárolói rendezetten tárolnak.
- A const_iterator értéke megváltoztatható, csak az adat nem változtatható meg, amire az iterátor hivatkozik.
- A perzisztens objektum állapota állandó, azaz az állapota nem változtatható meg.
Jelölje, hogy mely kijelentés(ek) igaz(ak) a C++ nyelvre!
- Az adapter tervezési minta csak örökléssel valósítható meg.
- A kivételosztályokat kötelező az std::exception osztályból származtatni.
- Referencia típusú, nem statikus tagváltozó csak inicializáló listán inicializálható paraméterként átadott értékkel.
- Az objektumok szerializációját a C++ automatikusan biztosítja, csupán a Serializable osztályból kell származtatni.
Melyik állítás igaz?
- Egy osztály privát adatát közvetlenül csak a tagfüggvények érhetik el.
- Egy osztály privát adatát közvetlenül csak a tagfüggvények és a leszármazott osztályok tagfüggvényei érhetik el.
- Egy osztály privát adatát csak a leszármazott osztályok tagfüggvényei érhetik el.
- Egy osztály privát adatát közvetlenül csak a tagfüggvények és a barát függvények érhetik el.
Adott a következő deklaráció:
const char *p;
Igaz, vagy hamis?
p pointerrel elérhető memóriaterület nem változtatható meg.
- Igaz
- Hamis
Adott a következő kódrészlet:
int a1 = 1; int b1 = 2; int &tmp = a1; a1 = b1; b1= tmp;
A kódrészlet lefutása után melyik állítás helyes?
- a1 == 1 és b1 == 2
- a1 == 2 és b1 == 1
- a1 == 1 és b1 == 1
- a1 == 2 és b1 == 2
Adott a következő deklaráció:
struct A { virtual void foo() { std::cout << "A\n"; } void bar() { foo(); } }; struct B : public A { void foo() { std::cout << "B\n"; } };
Mit ír ki a következő kódrészlet?
A* pa = new B; pa->foo();
- A
- B
- A kódrészlet hibás pa változó nem kaphat értékül B objektumra mutató pointert.
Adott a következő deklaráció:
struct A { virtual void foo() { std::cout << "A\n"; } void bar() { foo(); } }; struct B : public A { void foo() { std::cout << "B\n"; } };
Mit ír ki a következő kódrészlet?
A* pa = new B; pa->A::foo();
- A
- A kódrészlet hibás pa változó nem kaphat értékül B objektumra mutató pointert.
- B
Adott a következő deklaráció:
struct A { virtual void foo() { std::cout << "A\n"; } void bar() { foo(); } }; struct B : public A { void foo() { std::cout << "B\n"; } };
Mit ír ki a következő kódrészlet?
B b; b.bar();
- A
- A kódrészlet hibás, mert a B osztálynak nincs bar() tagfüggvénye.
- B
Adott a következő deklaráció:
class A { int a; public: A() : a(0) {} // 4. sor int &inc() const { return a++; } // 5. sor };
Melyik állítás igaz?
- A 4. sor hibás, mert inicializáló listán csak objektum szerepelhet. Az a adattag pedig nem objektum.
- Az 5. sor hibás, mert privát adat referenciáját nem lehet képezni.
- Az 5. sor hibás, mert konstans tagfüggvény nem módosíthatja az objektum állapotát.
- Az 5. sor hibás, mert nem lehet referencia típusú konstans függvény.
C++ nyelvben a konstruktor lehet:
- statikus konstruktor
- paraméter nélkül hívható, vagy default konstruktor
- egy vagy több paraméterrel hívható konstruktor
- konstans konstruktor
- virtuális konstruktor
- értékadó konstruktor
- másoló konstruktor
- funkcionális konstruktor