Gibt es eine legitime Verwendung void*
in C ++? Oder wurde dies eingeführt, weil C es hatte?
Nur um meine Gedanken zusammenzufassen:
Eingabe : Wenn wir mehrere Eingabetypen zulassen möchten, können wir Funktionen und Methoden überladen. Alternativ können wir eine gemeinsame Basisklasse oder Vorlage definieren (danke, dass Sie dies in den Antworten erwähnt haben). In beiden Fällen wird der Code aussagekräftiger und weniger fehleranfällig (vorausgesetzt, die Basisklasse wird auf vernünftige Weise implementiert).
Ausgabe : Ich kann mir keine Situation vorstellen, in der ich lieber empfangen würde void*
als etwas, das von einer bekannten Basisklasse abgeleitet ist.
Nur um klar zu machen, was ich meine: Ich frage nicht speziell, ob es einen Anwendungsfall void*
gibt, sondern ob es einen Fall void*
gibt, in dem die beste oder einzige verfügbare Wahl ist. Was von mehreren Personen unten perfekt beantwortet wurde.
variant
, any
, getaggt Vereinigung. Alles, was Ihnen die tatsächliche Art des Inhalts und die Sicherheit der Verwendung mitteilen kann.