我也说点自己不太确定的想法,我想:
C++把void 作为最特殊的指针类型,是为了它的灵活性,它可以指向任何对象(包括自己定义的类型)。
我想你应该玩过扑克吧。void指针就象是癞子一样,他可以做为桥梁,对很多时候,都使函数具有通用性。
比如void* func(void*);这里的参数都可以经过类型转换以后得来。
对于其他的类型,我认为,由于他们本身的关系是不明确的,如果是继承和派生的关系,当然是可以自行变换的。
然而对于任意的两个类型指针,那么会因为没有包含关系,而不知道如何取舍属性,因此如此规定会使得程序员更少的犯错,规范代码
任何指针变化,因为都是指针层面,“所以把他看成是一种东西吧”。
只要是经过“强制”类型转换都是可行的,只是直接让编译器为它转化就不是随意的了
[此贴子已经被作者于2006-7-24 13:03:27编辑过]