C ++ virtuelle Funktion vom Konstruktor [duplizieren]

Diese Frage hat hier bereits eine Antwort:

ufruf virtueller Funktionen innerhalb von Konstruktor 13 answers

Warum gibt das folgende Beispiel "0" aus und was muss geändert werden, damit "1" wie erwartet ausgegeben wird?

#include <iostream>
struct base {
   virtual const int value() const {
      return 0;
   }
   base() {
      std::cout << value() << std::endl;
   }
   virtual ~base() {}
};

struct derived : public base {
   virtual const int value() const {
      return 1;
   }
};

int main(void) {
   derived example;
}

Antworten auf die Frage(14)

Ihre Antwort auf die Frage