Rozwiń skrót VMTP.
Virtual Method Table Pointer- wskaźnik do tablicy metod wirtualnych używanej przy polimorfiźmie. Zawiera go każdy obiekt, w którym korzystamy z metod wirtualnych. Jak utworzyć klasę, z której nie można dziedziczyć?
class Finalizer {
friend class A; private:
Finalizer(){}
};
class A: public virtual Finalizer {
};
Jaki typ powinien zwracać przeciążony operator ->?
Operator ten musi zwrócić wskaźnik lub obiekt klasy, który także ma przeciążony ten sam operator.
Czy klasa zagnieżdżona ma dostęp do prywatnych składowych klasy zewn.?
Tak. Poniższy kod nie powoduje żadnego błędu kompilacji: class foo
{
public:
class bar
{
public:
int xyz(foo &x){ return x.foobar; }
};
void setFoobar(int a){ foobar = a; } private:
int foobar;
};
Czym się różni struktura (struct) od klasy (class)?
W C++ jedyna różnica (oprócz słowa kluczowego) polega na tym, że jeżeli określiliśmy jakiś element składowy poza modyfikatorem dostępu (public, private, protected), to:
1. W klasie będzie on prywatny.
2. W strukturze będzie on publiczny.
Poza tym struktury mogą posiadać metody, podlegają dziedziczeniu, możliwe jest także,
5 z 13