test->input 是 void* 。它不能用 -> 。 test->input = (B*)(...) 会把右侧的 B* 的指针转换为 void* 赋值给左侧。C++ 里变量的类型是不能改变的。test->input 依然是 void* 。void* 不能使用 -> 。 最后一个写法是可以的,因为 tmp1 是 B* 。 以上仅讨论编译时的问题。这些写法在运行时几乎都有内存问题。
阅读量:1
点赞量:2