มีการใช้งานvoid*C ++ อย่างถูกกฎหมายหรือไม่? หรือสิ่งนี้ถูกแนะนำเพราะมี C?
เพื่อสรุปความคิดของฉัน:
อินพุต : หากเราต้องการอนุญาตประเภทอินพุตหลายประเภทเราสามารถโอเวอร์โหลดฟังก์ชันและเมธอดหรือเราสามารถกำหนดคลาสพื้นฐานทั่วไปหรือเทมเพลต (ขอบคุณที่กล่าวถึงสิ่งนี้ในคำตอบ) ในทั้งสองกรณีรหัสจะได้รับการอธิบายมากขึ้นและมีข้อผิดพลาดน้อยลง (หากคลาสพื้นฐานถูกนำไปใช้อย่างมีเหตุผล)
ผลลัพธ์ : ฉันไม่สามารถนึกถึงสถานการณ์ใด ๆ ที่ฉันต้องการได้รับ void*เมื่อเทียบกับสิ่งที่มาจากคลาสพื้นฐานที่รู้จัก
เพียงเพื่อให้ชัดเจนว่าฉันหมายถึงอะไร: ฉันไม่ได้ถามเป็นพิเศษว่ามี use-case สำหรับvoid*แต่ถ้ามีvoid*ทางเลือกที่ดีที่สุดหรือมีให้เลือกเท่านั้น ซึ่งได้รับคำตอบอย่างสมบูรณ์แบบจากหลาย ๆ คนด้านล่าง