different bases 'base1' and 'base2' specified
The compiler cannot convert between two incompatible based pointers because they have different bases. If you want to convert based pointers, they must be based on the same thing.