It depends on the namespace you already are:
If you’re in no namespace or another, unrelated namespace, then you have to specify to whole path ABC::XYZ::ClassA.
If you’re in ABC you can skip the ABC and just write XYZ::ClassA.
Also, worth mentioning that if you want to refer to a function which is not in a namespace (or the “root” namespace), you can prefix it by :::
Example:
int foo() { return 1; }
namespace ABC
{
double foo() { return 2.0; }
void bar()
{
foo(); //calls the double version
::foo(); //calls the int version
}
}