virtual-functions
¿Por qué una función virtual sería privada?
Acabo de ver esto en algún código:
class Foo {
[...]
private:
virtual void Bar() = 0;
[...]
}
¿Tiene esto algún propósito?
(Estoy tratando de portar algún código de VS a G++, y esto me llamó la atención)
Diferencia entre redefinir y sobreescribir una función
Supongamos que tengo una clase A con una función virtual F():
class A
{
virtual void F()
{
// Do something
... : A
{
void F() override
{
// Do something
};
};
¿Cuál es la diferencia entre F() en las clases B y C?
¿Cuándo se crea una vtable en C++?
¿Cuándo crea exactamente el compilador una tabla de funciones virtuales?
1) cuando la clase contiene al menos una función ...
¿Qué clases contendrán una tabla en V?
Dado que B no declara f() como virtual, ¿la clase C obtiene polimorfismo dinámico?