C++ verfügt über eine schöne Funktion, mit der der Compiler verhindert, dass Sie vergessen, eine rein virtuelle Methode in einer Unterklasse zu implementieren. Was aber, wenn ich von einem Benutzer meiner abstrakten Basisklasse verlangen möchte, dass er mindestens eine von mehreren möglichen virtuellen Methoden implementiert?
Ich arbeite mit libhiserver und erstelle eine Unterklasse für das http_resource-Objekt. Daher möchte eine Unterklasse möglicherweise nur auf POST-Anfragen antworten. In diesem Fall würde sie render_POST überschreiben, und eine andere antwortet möglicherweise nur auf GET, indem sie render_GET überschreibt. http_resource selbst stellt Standardimplementierungen jedes render_*METHOD*-Mitglieds bereit, die wiederum die generische render-Methode aufrufen. Das ist funktional, hilft dem Entwickler aber nicht dabei, sich daran zu erinnern, dass mindestens eine davon überschrieben werden muss, damit etwas passiert.
Gibt es so etwas wie eine Syntax, die den Compiler dazu bringt, eine solche Regel durchzusetzen? „Sie müssen mindestens eine davon ausführen, aber es spielt keine Rolle, welche.“
Diese Frage kommt der gleichen Idee sehr nahe, ist jedoch spezifisch für C++11 und der Fragesteller konzentriert sich speziell auf überschriebene Methoden.
Gibt es eine C++-Syntax für „mindestens eine dieser“ rein virtuellen Methoden? ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie mache ich
rein inline?
by Guest » » in HTML- 0 Replies
- 40 Views
- Last post by Guest
-
Mobile version