Nadpisywanie funkcji C ++

Mam trzy różne klasy podstawowe:

<code>class BaseA
{
public:
    virtual int foo() = 0;
};

class BaseB
{
public:
    virtual int foo() { return 42; }
};

class BaseC
{
public:
    int foo() { return 42; }
};
</code>

Następnie wywodzę się z bazy w ten sposób (zastąp X dla A, B lub C):

<code>class Child : public BaseX
{
public:
    int foo() { return 42; }
};
</code>

W jaki sposób funkcja jest nadpisywana w trzech różnych klasach podstawowych? Czy moje trzy następujące założenia są prawidłowe? Czy są jakieś inne zastrzeżenia?

Z BaseA klasa potomna nie kompiluje się, czysta funkcja wirtualna nie jest zdefiniowana.W BaseB funkcja podrzędna jest wywoływana podczas wywoływania foo na BaseB * lub Child *.W BaseC funkcja podrzędna jest wywoływana podczas wywoływania foo w Child *, ale nie w BaseB * (wywoływana jest funkcja w klasie nadrzędnej).

questionAnswers(6)

yourAnswerToTheQuestion