„Prog2 2. ZH kikérdező” változatai közötti eltérés
A VIK Wikiből
még több kérdés |
a Wirker Dávid Zoltán átnevezte a(z) Prog2 2. ZH Igaz/Hamis kikérdező lapot a következő névre: Prog2 2. ZH kikérdező: nem csak igaz/hamis |
(Nincs különbség)
|
A lap 2021. május 15., 18:51-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.
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.