Rufen Sie die virtuelle Methode während der Konstruktion an, um den virtuellen Versand C ++ [Duplikat] zu umgehenC++

Programme in C++. Entwicklerforum
Guest
 Rufen Sie die virtuelle Methode während der Konstruktion an, um den virtuellen Versand C ++ [Duplikat] zu umgehen

Post by Guest »

Ich habe den folgenden Code: < /p>

Code: Select all

class IInterface {
public:
virtual ~IInterface() {}
virtual void doSomething() = 0;
};

class Concrete : public IInterface {
public:
Concrete() : data{0} {doSomething();}
void doSomething() override {std::cout 
< /ul>
Sagen wir, wir machen konkrete c; < /code>. Dies ist, was ich denke, es passiert: < /p>
a) Speicher für Objekt C wird zugewiesen.
B) Der Konstruktor der abstrakten Klasse wird aufgerufen. Der __vptr < /code> zeigt auf eine reine virtuelle Funktion.
c) Der konkrete Konstruktor wird aufgerufen. Die Initialisierung von nicht statischen Mitgliedern findet statt. Initialisierung vollständig, weist die __VPTR  nun auf die Implementierung von Dosen durch Beton hin. Der Konstruktorkörper wird ausgeführt und iT  sollte  die Überschreibung aufrufen.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post