Prog2 2. ZH kikérdező
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.
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.
- C++-ban lehet függvényt balértékként használni.
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?
B b; b.bar();
- A
- A kódrészlet hibás, mert a B osztálynak nincs bar() tagfüggvénye.
- B
7777
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.