cannot convert 'type1 *' to 'type2 *'
A pointer to type1 could not be converted to a pointer to type2.
Since type1 was not derived from type2, implicit conversion was not possible.
A pointer to one type generally cannot be implicitly converted to a pointer to another type. Conversion to a void is possible if the size of void is greater than the size of the original pointer.
If a pointer to one type must be converted to a pointer to another type, then explicit conversion should be used.