When a purely abstract class is used as an interface in C++ (all member funtions are pure virtual and no data members and no implementation), can this pure abstract class only be used by clients to communicate with the concrete class derived from the pure abstract class?

If the same concrete class needs to communicate via this interface to another interface, can the concrete class's interface be purely abstract anymore? When this occurs a reference to the other interface class is required as well as some implementation to facilitate the communication.

Or should the concrete class use another seperate interface to communicate to other interfaces?

I guess I am confused as to how to implement bidirecional communication via abstract interfaces. This is all possible with abstract class interfaces, but what's the proper use of purely abstract interfaces?

Thanks,
Adam