Czy istnieje uzasadnione użycie void*w C ++? A może zostało to wprowadzone, ponieważ C to miał?
Podsumowując moje przemyślenia:
Dane wejściowe : jeśli chcemy zezwolić na wiele typów danych wejściowych, możemy przeciążać funkcje i metody, alternatywnie możemy zdefiniować wspólną klasę bazową lub szablon (dziękujemy za wspomnienie o tym w odpowiedziach). W obu przypadkach kod jest bardziej opisowy i mniej podatny na błędy (pod warunkiem, że klasa bazowa jest zaimplementowana w rozsądny sposób).
Wynik : nie przychodzi mi do głowy żadna sytuacja, w której wolałbym otrzymywać, void*w przeciwieństwie do czegoś pochodzącego ze znanej klasy bazowej.
Żeby wyjaśnić, co mam na myśli: nie pytam konkretnie, czy istnieje przypadek użycia void*, ale czy istnieje przypadek, w którym void*jest najlepszy lub jedyny dostępny wybór. Na co kilka osób poniżej doskonale odpowiedziało.