If you don't have a using declaration in PcComFile
, and you try to access IsWriteable
through a PcComFile
reference or pointer, the compiler doesn't know which one you want. It doesn't matter that it makes no difference; C++'s name lookup and ambiguity rules do not take into account that both functions are abstract.
A using declaration for one of the methods disambiguates the request and it's not relevant which one you pull in while both methods are abstract. Having two using declarations is definitely redundant, and actually looks wrong to me. It looks like it should fail to compile or make it ambiguous again.