ich eine Funktion definiert:unsigned long vs size_t verursacht Funktion Überlastungen ausfallen
void myfunc(size_t param1, size_t param2){
...
}
es funktioniert gut. Aber wenn ich versuche, diese Funktion zu überlasten
void myfunc(unsigned long param1, unsigned long param2){
...
}
Es schlägt mit der folgenden Meldung zu kompilieren: Fehler: myfunc (unsigned long param1, unsigned long param2) nicht überlastet werden.
Wie kann ich dieses Problem lösen, ohne staic_cast die Eingabeparameter zu size_t?
danke!
Meinen Sie, dieses C++ zu markieren? –
Das liegt wahrscheinlich daran, dass "size_t" in Ihrer Umgebung als "unsigned long" definiert ist. C/C++ hat in diesem Aspekt kein sehr starkes Typsystem. – Mysticial
Dies ist eine schlechte Idee, denn selbst wenn es funktioniert, würden Sie mehrdeutige Aufruffehler bekommen, wenn Sie versuchen, die Funktion zum Beispiel mit 'int' zu verwenden. Können Sie erklären, welches Problem Sie lösen möchten? –