C ++ имеет систему типов , поэтому переменные имеют типы, которые используются компилятором для разрешения перегрузки:
const char * p = 0;
const AnotherThing * q = 0;
XXX a(p), b(q); // uses the respective constructors for the static type of p, q
Если перегрузка неоднозначна, потому что вы этого не делаетеиспользуйте один из обязательных типов указателей, вы получите ошибку:
XXX c(0); // error: ambiguous