What are the reasons for casting a void pointer?

后端 未结 3 1407
梦如初夏
梦如初夏 2021-01-18 06:41

I\'m learning C++ from scratch, and as such I don\'t have an expert understanding of C. In C++, you can\'t cast a void pointer to whatever, and I understand the reasons behi

3条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-18 07:23

    What are the possible reasons for [casting a void * pointer in C]? Isn't this a giant hole in type safety?

    It's the only possible way to support polymorphism, aka generic programming. There's no other way to make, e.g., a generic hash table. Polymorphism in C is wildly unsafe, but it's the only polymorphism there is.

    Be glad that C++ has parametric polymorphism (one of the many functions of templates).

提交回复
热议问题