Aktualizacja: Zastąpiono przykład destruktora przykładem wywołania metody "prosto w górę".Pytania dotyczące dziedziczenia i V + C++
Cześć,
Jeśli mam następujący kod:
class a
{
public:
virtual void func0(); // a has a VTable now
void func1();
};
class b : public a
{
public:
void func0() { a::func0(); }
void func2();
};
- Czy tam vtable w B? B nie ma funkcji wirtualnych, ale wywołuje funkcję :: func0() z b :: func0()
- Czy func1 znajduje się w VTable? To nie jest wirtualne.
- Czy func2 znajduje się w VTable?
- Czy odpowiedzi na powyższe będą inne, jeśli nie było wywołania funkcji :: func0() w b :: func0()?
Dzięki
Byłbym miło, gdybyś powiedział w takich pytaniach, z jakiego kompilatora korzystasz. Wirtualne tabele są specyficzne dla implementacji, chociaż podejmowane są starania o standaryzację ich formatu. –
'b :: func0' ** jest ** wirtualny –