Ich habe eine alte statische Bibliothek (Klasse implementieren), ich möchte eine nicht virtuelle Funktion in virtuelle Funktion in einer Klasse ändern, sollte ich die Bibliothek neu kompilieren?Sollte ich Klassenimplementierung rekompilieren, wenn nicht virtuelle Funktion in virtuelle Funktion geändert wird?
0
A
Antwort
2
Ich wollte etwas mehr Argumentation zur Antwort von @jesper hinzufügen Ja, denn jetzt wird es neue Eintrag pro neue virtuelle Funktion in Vtable so Neukompilierung ist muss.
+0
* Und * weil alle Anrufe dazu jetzt über die VFT gehen müssen. – EJP
+0
ja! VFT wird bei jedem Aufruf nach Objekt für diese Klasse nachgeschlagen. –
4
Ja. Sie müssen die Bibliothek und Anwendungen neu kompilieren, die es verwenden.
Hinzugefügt [tag: vtable], weil das vtable-Layout betroffen ist. – curiousguy