![]() |
[C++] problem mit const-deklaration
hiho,
also ich programmier primär in Java, C++ Erfahrung habe ich zwar aber es hält sich in Grenzen, habe hier auch eine Riesen C++ Bibel liegen (C++ Primer Plus) ... und mir is bewusst was "const" in den versch. Situationen bezweckt, aber das Problem was mir der Compiler nennt will mir nich klar werden. hier nun mal etwas code:
Code:
so alles ausser der Aufruf mit gate is ja simpel, die Methode gate() gibt es in 2 folgenden Varianten:
/* vorgegebene Syntax der Methode */
cGate * NetworkStack::getExternalGate(cGate * outgate) const { // Your task: return the external gate for the given internal gate assert(outgate); assert(strcmp(outgate->name(),"netOut") == 0); //alles vorm "=" war gegeben, den Methodenaufruf habe ich eingefügt cGate * retval = gate(outgate->name(),outgate->index()); assert(retval); return retval; }
Code:
ich vermute mal stark der compiler sucht sich die richtige Methode raus, weil die Parameter sind ja identisch.
cGate *cModule::gate(const char *s, int sn)
const cGate *cModule::gate(const char *s, int sn) const ich bekomme nun bei obigem Code folgende Fehlermeldung: Zitat:
|
Re: [C++] problem mit const-deklaration
Ich nehme an, NetworkStack leitet con cModule ab.
Zitat:
|
Re: [C++] problem mit const-deklaration
Zitat:
Diese Methode die ich da implementieren soll, wird von 3-4 anderen Methoden aufgerufen, auf welche ich gar kein Einfluss habe, sprich diese Aufrufer sind ebenfalls komplett vorgegeben, und bilden mit anderen Klassen das Backend. Und du hast richtig vermutet, NetworkStack ist von cSimpleModule abgeleitet und dies wiederum von cModule. so gesehen, steh ich n bissel auf dem schlauch, da ich die Aufrufe dieser Methode gar nich beeinflussen kann. Dort arbeite ich vermutlich nicht mit einem "const" Objekt. |
Re: [C++] problem mit const-deklaration
Zitat:
Du könntest btw auch von dieser Methode, soweit notwendig, eine const- und eine non-const-Variante erstellen. |
Re: [C++] problem mit const-deklaration
leider ist die methode sowie der rückgabewert fest vorgegeben, der übungsleiter meinte auch schon zu mir, dass ich defintiv mit der gate()-Methode arbeiten soll, aber scheinbar muss ich diese auf nem const networkstack aufrufen, kann ich das "this" quasi casten (gibts ein "this" wie in java? ^^) ... dann könnte ich auf dem const-gecasteten Objekt die gatemethode aufrufen, was dann funktionieren müsste?
|
Re: [C++] problem mit const-deklaration
Ja, this gibt es. Und ein const_cast<> später klappt das vllt... - aber da bin ich auch überfragt, ob der const_cast<> hier anwendbar ist...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz