Ich nehme an, NetworkStack leitet con cModule ab.
Zitat von
Haegar:
Code:
cGate *cModule::gate(const char *s, int sn)
const cGate *cModule::gate(const char *s, int sn) const
ich vermute mal stark der compiler sucht sich die richtige Methode raus, weil die Parameter sind ja identisch.
Nicht so ganz. Nach dem Rückgabewert wird eine Funktionsüberladung grundsätzlich nicht aufgelöst. Entscheidend ist hier, ob du ein const-Objekt hast oder nicht - und da die Methode getExternalGate() als const deklariert ist, geht sie von einem konstanten Objekt aus, d.h., es steht überhaupt nur die letzte Variante zur Verfügung. Und einen const cGate-Zeiger darfst du nunmal nicht an einen cGate-Zeiger zuweisen.